次の方法で共有


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

関連項目

CLFS_LSN

ClfsAdvanceLogBase

ClfsCreateMarshallingArea

ClfsReadPreviousRestartArea

ClfsReadRestartArea