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

用于扫描容器的模式。

可以在以下任一模式下扫描容器。

含义
CLFS_SCAN_INIT
从容器列表中的第一个容器初始化或重新初始化扫描。

此模式初始化容器上下文并返回 cContainers 指定的第一组容器描述符。

CLFS_SCAN_FORWARD
返回 cContainers 指定的第一组容器。
CLFS_SCAN_BACKWARD
返回 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

另请参阅

CLFS_CONTAINER_INFORMATION

CLFS_SCAN_CONTEXT

CLFS_SCAN_MODE

常见日志文件系统函数

ScanLogContainers