CreateLogContainerScanContext 函数 (clfsw32.h)
创建扫描上下文以与 ScanLogContainers 一起使用,以枚举与日志关联的所有日志容器,并执行第一次扫描。
语法
CLFSUSER_API BOOL CreateLogContainerScanContext(
[in] HANDLE hLog,
[in] ULONG cFromContainer,
[in] ULONG cContainers,
[in] CLFS_SCAN_MODE eScanMode,
[in, out] PCLFS_SCAN_CONTEXT pcxScan,
[in, out, optional] LPOVERLAPPED pOverlapped
);
参数
[in] hLog
从 CreateLogFile 获取的日志句柄,具有扫描日志容器的权限。
该文件可以是专用日志或多路复用日志。
[in] cFromContainer
要在其中启动扫描的容器。
此参数是相对于日志中容器数的序号。
[in] cContainers
要分配的 CreateLogContainerScanContext的CLFS_CONTAINER_INFORMATION结构数。
此数字是每次扫描调用扫描的容器数,因此当返回的容器数小于此值时,调用方知道扫描已完成。
退出时,指向系统分配的CLFS_CONTAINER_INFORMATION结构的数组的指针放置在客户端分配的CLFS_SCAN_CONTEXT结构的 pinfoContainer 成员中。 此成员由 pcxScan 参数 (即“pcxScan-pinfoContainer>[]”) 指向,数组中的实际结构数放置在“pcxScan-cContainersReturned>”中。
客户端必须在 eScanMode 参数设置为 CLFS_SCAN_CLOSE 的情况下调用 ScanLogContainers,以便可以释放此数组;否则,内存泄漏结果。
[in] eScanMode
用于扫描容器的模式。
可以在以下任一模式下扫描容器。
值 | 含义 |
---|---|
|
从容器列表中的第一个容器初始化或重新初始化扫描。
此模式初始化容器上下文并返回 cContainers 指定的第一组容器描述符。 |
|
返回 cContainers 指定的第一组容器。 |
|
返回 cContainers 指定的最后一组容器。 |
[in, out] pcxScan
指向客户端分配 的CLFS_SCAN_CONTEXT 结构的指针,该结构接收扫描上下文,当客户端扫描专用日志的日志容器时,该上下文可传递给 ScanLogContainers 函数。
[in, out, optional] pOverlapped
指向异步操作所需的 OVERLAPPED 结构的指针。
如果未使用异步操作,此参数可以为 NULL 。
返回值
如果该函数成功,则返回值为非零值。
如果函数失败,则返回值为零。 要获得更多的错误信息,请调用 GetLastError。
以下列表标识了可能的错误代码:
注解
完成扫描后,客户端必须再次调用 ScanLogContainers ,并将 eScanMode 参数设置为 CLFS_SCAN_CLOSE ,以便可以释放系统分配的 CLFS_CONTAINER_INFORMATION 结构数组;否则,内存泄漏结果。
示例
有关使用此函数的示例,请参阅 枚举日志容器。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows Vista [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2003 R2 [仅限桌面应用] |
目标平台 | Windows |
标头 | clfsw32.h |
Library | Clfsw32.lib |
DLL | Clfsw32.dll |