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 で使用できます。 |
ターゲット プラットフォーム の | デスクトップ |
ヘッダー | wdm.h (Wdm.h を含む) |
ライブラリ | Clfs.lib |
DLL | Clfs.sys |
IRQL | <= APC_LEVEL |
関連項目
ClfsAdvanceLogBase の
ClfsReadPreviousRestartArea の
ClfsReadRestartArea の