共用方式為


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常數

意義
ClfsNullRecord
會使用 ClfsDataRecord 的預設記錄類型。
ClfsDataRecord
會讀取用戶數據記錄。
ClfsRestartRecord
會讀取重新啟動記錄。
ClfsClientRecord
系統會讀取重新啟動和數據記錄。
ClfsClientRecord
指定所有有效數據或重新啟動記錄的遮罩。

[in, optional] plsnStart

CLFS_LSN 指標,指定 記錄傾印序列的起始記錄序號 (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 會將用戶記錄數據放在輸出數據流中,以十六進位數位表示。

[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” 的 緩衝區 參數必須指向使用 pfnAllocBuffer 所指向的回呼所配置的區塊。

[in, optional] pvBlockAllocContext

如果指定緩衝區,則會將緩衝區當做使用者內容傳遞至區塊配置和解除分配例程的緩衝區指標。

如果 pfnAllocBufferNULL,則會忽略此參數。

[in] cbBlock

記錄封送處理成的緩衝區大小,以位元組為單位。

如果記錄超過此值,則無法附加或讀取記錄。

[in] cMaxBlocks

可以隨時為讀取作業配置的最大區塊數目。

讀取內容至少使用一個讀取區塊。

傳回值

如果函式成功,則傳回非零的值。

如果函式失敗,傳回值會是零 (0) 。 若要取得擴充的錯誤資訊,請呼叫 GetLastError。 下列清單會識別可能的錯誤碼:

規格需求

需求
最低支援的用戶端 Windows Vista [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2003 R2 [僅限傳統型應用程式]
目標平台 Windows
標頭 clfsw32.h
程式庫 Clfsw32.lib
Dll Clfsw32.dll

另請參閱

CLFS_LSN

CLFS_RECORD_TYPE

一般記錄檔系統函式