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 つ以上を指定できます。

意味
ClfsNullRecord
ClfsDataRecord の既定のレコードの種類が使用されます。
ClfsDataRecord
ユーザー データ レコードが読み取られます。
ClfsRestartRecord
再起動レコードが読み取られます。
ClfsClientRecord
再起動レコードとデータ レコードの両方が読み取られます。
ClfsClientRecord
すべての有効なデータのマスクを指定するか、レコードを再起動します。

[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

バッファーが指定されている場合、ブロック割り当ておよび割り当て解除ルーチンにユーザー コンテキストとして渡されるバッファーへのポインター。

pfnAllocBufferNULL の場合、このパラメーターは無視されます。

[in] cbBlock

レコードがマーシャリングされるバッファーのサイズ (バイト単位)。

レコードがこの値より長い場合、レコードを追加したり読み取ったりすることはできません。

[in] cMaxBlocks

読み取り操作に対していつでも割り当てることができるブロックの最大数。

読み取りコンテキストでは、少なくとも 1 つの読み取りブロックが使用されます。

戻り値

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

関数が失敗した場合は、0 を返します。 詳細なエラー情報を得るには、GetLastError を呼び出します。 次の一覧は、考えられるエラー コードを示しています。

要件

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

こちらもご覧ください

CLFS_LSN

CLFS_RECORD_TYPE

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