次の方法で共有


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

こちらもご覧ください

CLFS_LSN

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

GetNextLogArchiveExtent

ReadLogArchiveMetadata

TerminateLogArchive