closeTrace 函数 (evntrace.h)
CloseTrace 函数关闭使用 OpenTrace 创建的跟踪处理会话。
语法
ETW_APP_DECLSPEC_DEPRECATED ULONG WMIAPI CloseTrace(
[in] TRACEHANDLE TraceHandle
);
参数
[in] TraceHandle
要关闭的跟踪处理会话的句柄。 OpenTrace 函数返回此句柄。
返回值
如果函数成功,则返回值为 ERROR_SUCCESS。
如果函数失败,则返回值为 系统错误代码之一。 下面是一些常见错误及其原因。
ERROR_INVALID_HANDLE
下列情况之一存在:
- TraceHandle 为 0。
- 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、EventCallback 或 EventClassCallback 回调调用 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 |