closeTrace 函数 (evntrace.h)

CloseTrace 函数关闭使用 OpenTrace 创建的跟踪处理会话。

语法

ETW_APP_DECLSPEC_DEPRECATED ULONG WMIAPI CloseTrace(
  [in] TRACEHANDLE TraceHandle
);

参数

[in] TraceHandle

要关闭的跟踪处理会话的句柄。 OpenTrace 函数返回此句柄。

返回值

如果函数成功,则返回值为 ERROR_SUCCESS。

如果函数失败,则返回值为 系统错误代码之一。 下面是一些常见错误及其原因。

  • ERROR_INVALID_HANDLE

    下列情况之一存在:

    • TraceHandle0
    • traceHandle已INVALID_PROCESSTRACE_HANDLE
    • TraceHandle 不是有效的句柄。
  • ERROR_BUSY

    在 Windows Vista 之前,在 ProcessTrace 函数完成之前,无法关闭跟踪。

  • ERROR_CTX_CLOSE_PENDING

    调用成功。 ProcessTrace 函数在其缓冲区中处理所有实时事件后将停止, (它不会收到) 的任何新事件。

备注

使用者调用此函数以关闭 OpenTrace 返回的跟踪句柄。

重要

请勿使用此函数关闭 StartTrace 返回的跟踪句柄。

如果要处理日志文件中的事件,则仅在 ProcessTrace 函数返回后调用此函数。 但是,如果要处理实时事件,则可以在 ProcessTrace 返回之前调用此函数。 (停止跟踪处理的另一种方法是从 BufferCallback.)

如果在 ProcessTrace 返回之前调用此函数, CloseTrace 函数将返回ERROR_CTX_CLOSE_PENDING。 ERROR_CTX_CLOSE_PENDING代码指示 CloseTrace 函数调用成功;ProcessTrace 函数将在处理以前排队的所有事件后停止处理事件, (调用 CloseTrace 函数) 后,ProcessTrace 不会收到任何新事件。 可以从 BufferCallback、EventCallbackEventClassCallback 回调调用 CloseTrace 函数。

在 Windows Vista 之前: 只能在 ProcessTrace 返回后调用 CloseTrace

示例

有关使用 CloseTrace 的示例,请参阅 使用 TDH 检索事件数据

要求

   
最低受支持的客户端 Windows 2000 专业版 [桌面应用 |UWP 应用]
最低受支持的服务器 Windows 2000 Server [桌面应用 |UWP 应用]
目标平台 Windows
标头 evntrace.h
Library Windows 8.1 和 Windows Server 2012 R2 上的 Sechost.lib;Windows 8、Windows Server 2012、Windows 7、Windows Server 2008 R2、Windows Server 2008、Windows Vista 和 Windows XP 上的 Advapi32.lib
DLL Windows 8.1 和 Windows Server 2012 R2 上的 Sechost.dll;Windows 8、Windows Server 2012、Windows 7、Windows Server 2008 R2、Windows Server 2008、Windows Vista 和 Windows XP 上的 Advapi32.dll

请参阅

OpenTrace

ProcessTrace