PrepareLogArchive 関数 (clfsw32.h)
アーカイブ用の物理ログを準備します。 関数は、現在のアクティブ ログのスナップショットを受け取り、アクティブなログ エクステントのログ アーカイブ記述子の順序付きセットを構築し、ログ アーカイブ コンテキストを返します。
このログ アーカイブ コンテキストを GetNextLogArchiveExtent に渡すことで、クライアントはログ アーカイブ エクステントのセットを反復処理してログをアーカイブできます。 アーカイブするレコードの範囲を指定することもできます。
構文
CLFSUSER_API BOOL PrepareLogArchive(
[in] HANDLE hLog,
[in, out] PWSTR pszBaseLogFileName,
[in] ULONG cLen,
[in, optional] const PCLFS_LSN plsnLow,
[in, optional] const PCLFS_LSN plsnHigh,
[out, optional] PULONG pcActualLength,
[out] PULONGLONG poffBaseLogFileData,
[out] PULONGLONG pcbBaseLogFileLength,
[out] PCLFS_LSN plsnBase,
[out] PCLFS_LSN plsnLast,
[out] PCLFS_LSN plsnCurrentArchiveTail,
[out] PCLFS_LOG_ARCHIVE_CONTEXT ppvArchiveContext
);
パラメーター
[in] hLog
CreateLogFile の正常な呼び出しによって取得されるログへのハンドル。
このハンドルは、専用または多重化されたログへのハンドルにすることができます。
[in, out] pszBaseLogFileName
基本ログの完全修飾パスを受け取るユーザー割り当てバッファーへのポインター。
バッファーの大きさが十分でない場合は、終了時に切り捨てられたファイル パスが含まれており、関数は ERROR_BUFFER_OVERFLOW 状態コードで失敗します。
ファイル パスの長さは、 pcActualLength が指す変数で返されます。 クライアントは、十分な大きさの名前バッファーを使用して、失敗した呼び出しを再試行できます。
[in] cLen
pszBaseLogFileName バッファーのサイズ (ワイド文字)。
[in, optional] plsnLow
ログ クライアントがログ アーカイブ情報を必要とするアクティブ ログの範囲のロー エンドのログ シーケンス番号 (LSN) を指定するCLFS_LSN構造体へのポインター。
このパラメーターを省略すると、範囲の下端は既定でログ アーカイブ末尾の LSN になります。
[in, optional] plsnHigh
ログ クライアントがログ アーカイブ情報を必要とするアクティブ ログの範囲のハイエンドの LSN を指定するCLFS_LSN構造体へのポインター。
このパラメーターを省略すると、範囲のハイエンドは、ログに書き込まれる次の LSN に既定で設定されます。
[out, optional] pcActualLength
ベース ログ パスの名前の実際の長さを文字で受け取る変数へのポインター。
この値が cLen より大きい場合、関数は pszBaseLogFileName バッファーに格納されている切り捨てられたパスと、意味のある値に設定されていない他のすべての out パラメーターを含むERROR_BUFFER_OVERFLOW状態を返します。
[out] poffBaseLogFileData
基本ログでメタデータが開始されるオフセットを受け取る変数へのポインター。
ベース ログ pszBaseLogFileName 内の連続したエクステントは、ログ メタデータの完全な内容 (つまり、poffBaseLogFileData から pcbBaseLogFileLength) を表します。
[out] pcbBaseLogFileLength
ベース ログの正確な長さをバイト単位で指定する変数へのポインター。
[out] plsnBase
アクティブ ログのベース ログ シーケンス番号 (LSN) を受け取る CLFS_LSN 構造体へのポインター。
[out] plsnLast
アクティブ な ログで最 も有効な LSN を受け取るCLFS_LSN構造体へのポインター。
[out] plsnCurrentArchiveTail
ログ のアーカイブ 末尾の現在の LSN を受け取るCLFS_LSN構造体へのポインター。
[out] ppvArchiveContext
システムが割り当てるアーカイブ コンテキストへのポインターを受け取る変数へのポインター。
アーカイブ コンテキストは、アーカイブ反復子とログ ハンドル コンテキストのカーソル状態を維持します。 アーカイブ クライアントは、 TerminateLogArchive を呼び出してコンテキストを解放する役割を担います。
戻り値
関数が成功すると、戻り値は 0 以外になります。
関数が失敗した場合は、0 を返します。 詳細なエラー情報を得るには、GetLastError を呼び出します。 次の一覧は、考えられるエラー コードを示しています。
注釈
アーカイブ コンテキストを解放するには TerminateLogArchive を呼び出す必要があります。または、メモリ リークが発生する可能性があります。
TerminateLogArchive を呼び出すまでは、アーカイブされているコンテナーはリサイクルできません。
CreateLogFile が返すハンドルごとに一度に実行できるアーカイブ操作は 1 つだけです。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows Vista [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows Server 2003 R2 [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | clfsw32.h |
Library | Clfsw32.lib |
[DLL] | Clfsw32.dll |