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 |