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常量。
值 | 含义 |
---|---|
|
使用 ClfsDataRecord 的默认记录类型。 |
|
读取用户数据记录。 |
|
读取重启记录。 |
|
同时读取重启和数据记录。 |
|
为所有有效数据或重启记录指定掩码。 |
[in, optional] plsnStart
指向 CLFS_LSN 的指针,指定日志转储序列的起始日志序列号 (LSN) 。
如果指定此参数,则 LSN 必须是日志活动部分中有效日志记录的地址;否则,调用将失败,状态 ERROR_INVALID_PARAMETER。
如果未指定此参数,则转储序列的开头是活动日志的开头。
[in, optional] plsnEnd
指向 CLFS_LSN 的指针,指定转储序列的结束位置的 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”的 buffer 参数必须指向使用 pfnAllocBuffer 指向的回调分配的块。
[in, optional] pvBlockAllocContext
指向缓冲区的指针,该缓冲区作为用户上下文传递给块分配和解除分配例程(如果指定了缓冲区)。
如果 pfnAllocBuffer 为 NULL,则忽略此参数。
[in] cbBlock
记录封送到的缓冲区的大小(以字节为单位)。
如果记录的长度超过此值,则无法追加或读取记录。
[in] cMaxBlocks
可随时为读取操作分配的最大块数。
读取上下文至少使用一个读取块。
返回值
如果该函数成功,则返回值为非零值。
如果函数失败,则返回值为零 (0)。 要获得更多的错误信息,请调用 GetLastError。 以下列表标识了可能的错误代码:
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows Vista [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2003 R2 [仅限桌面应用] |
目标平台 | Windows |
标头 | clfsw32.h |
Library | Clfsw32.lib |
DLL | Clfsw32.dll |