ClfsWriteRestartArea 関数 (wdm.h)

ClfsWriteRestartArea ルーチンは、CLFS ストリームに新しい再起動レコードをアトミックに追加し、再起動レコードを安定ストレージにフラッシュし、必要に応じてストリームのベース LSN を更新します。

構文

CLFSUSER_API NTSTATUS ClfsWriteRestartArea(
  [in, out]       PVOID     pvMarshalContext,
  [in]            PVOID     pvRestartBuffer,
  [in]            ULONG     cbRestartBuffer,
  [in, optional]  PCLFS_LSN plsnBase,
  [in]            ULONG     fFlags,
  [out, optional] PULONG    pcbWritten,
  [out, optional] PCLFS_LSN plsnNext
);

パラメーター

[in, out] pvMarshalContext

CLFS ストリームに関連付けられたマーシャリング領域を表す不透明なコンテキストへのポインター。 呼び出し元は、 ClfsCreateMarshallingArea を呼び出して、このポインターを以前に取得しました。

[in] pvRestartBuffer

再起動レコードのデータを含むバッファーへのポインター。

[in] cbRestartBuffer

pvRestartBuffer が指すバッファーのサイズ (バイト単位)。 これは再起動データのサイズです。

[in, optional] plsnBase

ストリームの新しい基本 LSN を指定する CLFS_LSN 構造体へのポインター。 このパラメーターが NULL の場合、基本 LSN は変更されません。

[in] fFlags

このパラメーターには次のいずれかの値を指定する必要があります。

意味
0 再起動レコードは、I/O ブロック内の新しく割り当てられた領域に配置されます。 マーシャリング領域の予約レコードの数は変更されません。
CLFS_FLAG_USE_RESERVATION 再起動レコードは、I/O ブロック内の以前の予約済み領域に配置されます。 マーシャリング領域の予約済みレコードの数が 1 ずつ減らされます。

[out, optional] pcbWritten

安定ストレージに実際に強制されるバイト数を受け取る ULONG 型の変数へのポインター。 このパラメーターは、NULL でもかまいません。

[out, optional] plsnNext

新しく書き込まれた再起動 レコードの LSN を受け取るCLFS_LSN構造体へのポインター。

戻り値

ClfsWriteRestartArea は、成功した場合STATUS_SUCCESSを返します。それ以外の場合は、Ntstatus.h で定義されているエラー コードのいずれかを返します。

注釈

通常、ClfsWriteRestartArea は、クライアント チェックポイントの最後の動作として呼び出されます。

ClfsWriteRestartArea は比較的コストの高い操作です。これは、マーシャリング領域に現在あるすべてのレコードが、ストリームとログのメタデータのフラッシュと共にフラッシュされるためです。

ストリームにデータを書き込むには、一度に 1 つのマーシャリング領域のみを使用する必要があります。 ストリームに書き込むマーシャリング領域が 2 つあると、ストリームが破損する可能性があります。

ストリームのベース LSN を設定するだけの場合は、 ClfsAdvanceLogBase を使用します。これは、必ずしも安定したストレージにデータをフラッシュするとは限りません。

CLFS の概念と用語の詳細については、「 共通ログ ファイル システム」を参照してください。

要件

要件
サポートされている最小のクライアント Windows Server 2003 R2、Windows Vista、およびそれ以降のバージョンの Windows で使用できます。
対象プラットフォーム デスクトップ
Header wdm.h (Wdm.h を含む)
Library Clfs.lib
[DLL] Clfs.sys
IRQL <= APC_LEVEL

こちらもご覧ください

CLFS_LSN

ClfsAdvanceLogBase

ClfsCreateMarshallingArea

ClfsReadPreviousRestartArea

ClfsReadRestartArea