ReadPreviousLogRestartArea 関数 (clfsw32.h)
読み取りコンテキスト pvReadContext で指定された現在の再起動レコードに対して相対的な前のログ再起動領域を読み取ります。 この読み取りコンテキストは、 ReadLogRestartArea の呼び出しによって以前に作成されたものです。
構文
CLFSUSER_API BOOL ReadPreviousLogRestartArea(
[in] PVOID pvReadContext,
[out] PVOID *ppvRestartBuffer,
[out] PULONG pcbRestartBuffer,
[out] PCLFS_LSN plsnRestart,
[in, out, optional] LPOVERLAPPED pOverlapped
);
パラメーター
[in] pvReadContext
ReadLogRestartArea が返すシステム割り当て読み取りコンテキストへのポインター。
これらの関数が ERROR_IO_PENDINGを返しても、有効な読み取りコンテキストへのポインターが返されます。 非同期補完の詳細については、このトピックの「解説」セクションを参照してください。
[out] ppvRestartBuffer
再起動データへのポインターを受け取る変数へのポインター。
[out] pcbRestartBuffer
*ppvRestartBuffer で再起動データのサイズをバイト単位で受け取る変数へのポインター。
[out] plsnRestart
この 関数が返 す再起動領域のログ シーケンス番号 (LSN) を受け取るCLFS_LSN構造体へのポインター。
[in, out, optional] pOverlapped
非同期操作に必要な OVERLAPPED 構造体へのポインター。
非同期操作を使用しない場合、このパラメーターは NULL にすることができます。
戻り値
関数が成功すると、戻り値は 0 以外になります。
関数が失敗した場合は、0 を返します。 詳細なエラー情報を得るには、GetLastError を呼び出します。
次の一覧は、考えられるエラー コードを示しています。
注釈
CreateLogMarshallingArea で指定されたログ ブロック サイズが、完全なログ ブロックを保持するのに十分な大きさでない場合は、エラー メッセージ ERROR_LOG_BLOCK_INCOMPLETEが返されます。
readPreviousLogRestartArea がエラー コード ERROR_IO_PENDINGで失敗した場合、有効な読み取りコンテキストへのポインターは、ppvReadContext パラメーターによって指される変数に配置されます。
ログ レコードのコピーを完了するには、クライアントはまず、 GetOverlappedResult またはいずれかの同期 待機関数を使用して、重複した I/O 操作の遅延完了と実行を同期する必要があります。 詳細については、「 同期」と「入力と出力の重複」を参照してください。
ReadPreviousLogRestartArea が非同期的に完了すると、要求された再起動領域はディスクから読み取られますが、有効なポインターは *ppvRestartBuffer に配置されません。
有効なポインターを取得するには、クライアントが ReadPreviousLogRestartArea を 2 回目に呼び出す必要があります。
CLFS 読み取りコンテキストは、一度に複数の非同期読み取りに渡さないでください。または、関数がERROR_READで失敗します。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows Vista [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows Server 2003 R2 [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | clfsw32.h |
Library | Clfsw32.lib |
[DLL] | Clfsw32.dll |