DumpLogRecords 関数 (clfsw32.h)
指定したログをスキャンします。レコードの種類に基づいてログ レコードをフィルター処理します。と は、呼び出し元が開く出力ファイル ストリームにレコードを配置します。
構文
CLFSUSER_API BOOL DumpLogRecords(
[in] PWSTR pwszLogFileName,
[in] CLFS_RECORD_TYPE fRecordType,
[in, optional] PCLFS_LSN plsnStart,
[in, optional] PCLFS_LSN plsnEnd,
[in, optional] PFILE pstrmOut,
[in, optional] CLFS_PRINT_RECORD_ROUTINE pfnPrintRecord,
[in, optional] CLFS_BLOCK_ALLOCATION pfnAllocBlock,
[in, optional] CLFS_BLOCK_DEALLOCATION pfnFreeBlock,
[in, optional] PVOID pvBlockAllocContext,
[in] ULONG cbBlock,
[in] ULONG cMaxBlocks
);
パラメーター
[in] pwszLogFileName
ログ ストリームの名前。
この名前は、 CreateLogFile を使用してログを作成するときに指定されます。 次の例では、使用する形式を識別します。
ログ:<log name>[::<log stream name>]
<ログ名> は、ファイル システム内の有効なファイル パスに対応します。
<ログ ストリーム名> は、ログ内のログ ストリームの一意の名前です。
詳細については、「ログの 種類」を参照してください。
[in] fRecordType
読み取るレコードの種類。
このパラメーターには、次の CLFS_RECORD_TYPE 定数のうち 1 つ以上を指定できます。
[in, optional] plsnStart
ログ ダンプ シーケンスの開始ログ シーケンス番号 (LSN) を指定する CLFS_LSN へのポインター。
このパラメーターを指定する場合、LSN はログのアクティブな部分にある有効なログ・レコードのアドレスでなければなりません。それ以外の場合、呼び出しは状態 ERROR_INVALID_PARAMETERで失敗します。
このパラメーターを指定しない場合、ダンプ・シーケンスの開始はアクティブ・ログの先頭になります。
[in, optional] plsnEnd
ダンプ シーケンスを終了する LSN を指定する CLFS_LSN へのポインター。
この LSN が LSN 範囲の末尾を超える場合、関数は ERROR_HANDLE_EOFを返します。
plsnStart とは異なり、この値はアクティブ・ログ内の有効なレコードの LSN である必要はありませんが、任意の有効な LSN にすることができます。 LSN 値が plsnEnd 以下のレコードのみが出力ストリームに配置されます。
このパラメーターが NULL の場合、ダンプ関数はアクティブ ログの最後の LSN (ログの先頭) を使用します。
[in, optional] pstrmOut
ログ レコードが配置される開いている出力ストリームへのポインター。
このパラメーターを指定しない場合は、既定値として "stdout" が使用されます。
[in, optional] pfnPrintRecord
ユーザー定義バッファーを書式設定し、出力ストリーム pstrmOut に出力するユーザー定義コールバック ルーチン。
DumpLogRecords 関数は、内部レコード ヘッダーを pstrmOut にネイティブに出力しますが、ユーザー定義のコールバックに依存してユーザー バッファーを書式設定します。
このパラメーターが NULL の場合、 DumpLogRecords はユーザー レコード データを 16 進数字として出力ストリームに配置します。
[in, optional] pfnAllocBlock
ログ ブロックにメモリを割り当てるコールバック関数。
このパラメーターが NULL の場合、共通ログ・ファイル・システム (CLFS) はデフォルトのブロック割り振り機能を提供します。 ブロック解放コールバックが pfnFreeBuffer パラメーターを使用して指定されている場合、このパラメーターを NULL にすることはできません。
次の例では、ブロック割り当てコールバック関数の構文を識別します。
typedef PVOID (* CLFS_BLOCK_ALLOCATION) (voidULONG cbBufferSize, PVOID pvUserContext);
[in, optional] pfnFreeBlock
pfnAllocBuffer によって割り当てられたログ ブロックを解放するコールバック関数。
このパラメーターが NULL の場合、CLFS は既定のブロック割り当て解除関数を提供します。 ブロック割り当てコールバックが pfnAllocBuffer パラメーターを使用して指定されている場合、このパラメーターを NULL にすることはできません。
次の例では、ブロック解放コールバック関数の構文を識別します。
typedef void (* CLFS_BLOCK_DEALLOCATION) (PVOID pvBuffer, PVOID pvUserContext);
"ClfsBlockDeallocProc" の buffer パラメーターは、 pfnAllocBuffer によって指されるコールバックを使用して割り当てられるブロックを指す必要があります。
[in, optional] pvBlockAllocContext
バッファーが指定されている場合、ブロック割り当ておよび割り当て解除ルーチンにユーザー コンテキストとして渡されるバッファーへのポインター。
pfnAllocBuffer が NULL の場合、このパラメーターは無視されます。
[in] cbBlock
レコードがマーシャリングされるバッファーのサイズ (バイト単位)。
レコードがこの値より長い場合、レコードを追加したり読み取ったりすることはできません。
[in] cMaxBlocks
読み取り操作に対していつでも割り当てることができるブロックの最大数。
読み取りコンテキストでは、少なくとも 1 つの読み取りブロックが使用されます。
戻り値
関数が成功すると、戻り値は 0 以外になります。
関数が失敗した場合は、0 を返します。 詳細なエラー情報を得るには、GetLastError を呼び出します。 次の一覧は、考えられるエラー コードを示しています。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows Vista [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows Server 2003 R2 [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | clfsw32.h |
Library | Clfsw32.lib |
[DLL] | Clfsw32.dll |