WriteLogRestartArea 関数 (clfsw32.h)

新しいクライアント再起動領域をログに追加し、必要に応じてログの基本ログ シーケンス番号 (LSN) を進めます。

ディスクに正常に書き込まれた後、ログの最後の LSN が追加された再起動レコードの LSN に変更されます。 通常、 WriteLogRestartArea は既知の良好な状態を定期的に保存するアプリケーションで使用され、再起動領域には既存のログ レコード チェーンの LSN が含まれています。

構文

CLFSUSER_API BOOL WriteLogRestartArea(
  [in, out]           PVOID        pvMarshal,
  [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, optional] LPOVERLAPPED pOverlapped
);

パラメーター

[in, out] pvMarshal

CreateLogMarshallingArea 関数を使用して割り当てられるマーシャリング コンテキストへのポインター。

[in] pvRestartBuffer

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

[in] cbRestartBuffer

pvRestartBuffer のサイズ (バイト単位)。

[in, optional] plsnBase

再起動領域を正常に書き込んだ後のログの新しい基本 LSN を指定する、 CLFS_LSN 構造体へのポインター。

この値は、アクティブ なログの範囲外にすることはできません。 ReserveAndAppendLog の最新の呼び出しから lastLSN パラメーターで返された LSN より大きくなく、少なくとも現在のベース LSN の値である必要があります。 この省略可能なパラメーターを省略した場合、基本 LSN は変更されません。

[in] fFlags

この関数の動作を指定するフラグ。

次の値のうち 1 つ以上を組み合わせることができます。

意味
CLFS_FLAG_NO_FLAGS
フラグを割り当てない。
CLFS_FLAG_USE_RESERVATION
マーシャリング領域に予約されている領域を使用して、現在のレコードを追加します。

[out, optional] pcbWritten

操作の完了時に書き込まれるバイト数を受け取る変数へのポインター。

[out, optional] plsnNext

書き込まれる再起動 領域の LSN を指定するCLFS_LSN構造体へのポインター。

[in, out, optional] pOverlapped

OVERLAPPED 構造体へのポインター。

非同期操作を使用しない場合、このパラメーターは NULL にすることができます

戻り値

関数が成功すると、戻り値は 0 以外になります。

関数が失敗した場合は、0 を返します。 詳細なエラー情報を得るには、GetLastError を呼び出します。

次の一覧は、考えられるエラー コードを示しています。

注釈

WriteLogRestartArea は、現在バッファーに格納されているすべてのログ レコードのフラッシュとログ メタデータのフラッシュの両方を実行します。

非同期操作をサポートするために作成されたログでクライアントが WriteLogRestartArea を呼び出す場合 (たとえば、CreateLogFilefFlagsAndAttributes パラメーターがログの作成時にFILE_FLAG_OVERLAPPEDに設定されている場合)、クライアントは WriteLogRestartAreapOverlapped パラメーターで有効な OVERLAPPED 構造体へのポインターを指定する必要があります。

次に、 writeLogRestartAreaERROR_IO_PENDING のエラーで失敗した場合、有効な読み取りコンテキストへのポインターが ppvReadContext パラメーターによって指される変数に配置されます。

呼び出しを完了するには、クライアントは 、GetOverlappedResult またはいずれかの同期 待機関数を使用して、重複した I/O 操作の遅延完了と実行を同期する必要があります。 詳細については、「 同期」と「入力と出力の重複」を参照してください。

要件

要件
サポートされている最小のクライアント Windows Vista [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2003 R2 [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー clfsw32.h
Library Clfsw32.lib
[DLL] Clfsw32.dll

こちらもご覧ください

CLFS_LSN

一般的なログ ファイル システム関数

OVERLAPPED