TraceSetInformation 函数 (evntrace.h)
TraceSetInformation 函数配置事件跟踪会话设置。
语法
ULONG WMIAPI TraceSetInformation(
CONTROLTRACE_ID TraceId,
[in] TRACE_INFO_CLASS InformationClass,
[in] PVOID TraceInformation,
[in] ULONG InformationLength
);
参数
TraceId
[in] InformationClass
要启用或禁用的信息类。 类捕获的信息包含在事件的扩展数据部分中。 有关可启用的信息类的列表,请参阅 TRACE_QUERY_INFO_CLASS 枚举。
[in] TraceInformation
指向信息类特定数据的指针。 信息类确定此参数的内容。
[in] InformationLength
TraceInformation 缓冲区中数据的大小(以字节为单位)。
返回值
如果函数成功,则返回值为 ERROR_SUCCESS。
如果函数失败,则返回值为以下错误代码之一。
ERROR_BAD_LENGTH
程序发出命令,但命令长度不正确。 如果 InformationLength 参数小于最小大小,则返回此错误。
ERROR_INVALID_PARAMETER
参数不正确。
ERROR_NOT_SUPPORTED
不支持该请求。
其他
使用 FormatMessage 获取返回错误的消息字符串。
注解
调用 StartTrace 后调用此函数。
如果 InformationClass 参数设置为 TraceStackTracingInfo,则调用此函数将启用指定内核事件的堆栈跟踪。 对此函数的后续调用将覆盖为其启用了堆栈跟踪的内核事件的先前列表。 若要禁用堆栈跟踪,请在 将 InformationClass 设置为 TraceStackTracingInfo 且 InformationLength 设置为 0 的情况下调用此函数。
事件的扩展数据部分将包括调用堆栈。 StackWalk_Event MOF 类定义扩展数据的布局。
通常,在 64 位计算机上,如果不允许页面错误,则不能在某些上下文中捕获内核堆栈。 若要在 x64 上启用内核堆栈,请将 DisablePagingExecutive
“内存管理”注册表值设置为 1。 注册表 DisablePagingExecutive
值位于以下注册表项下: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management
。
这只能用于临时诊断目的,因为这会增加系统的内存使用量。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 7 [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2008 R2 [仅限桌面应用] |
目标平台 | Windows |
标头 | evntrace.h |
Library | Windows 8.1 和 Windows Server 2012 R2 上的 Sechost.lib;Windows 8、Windows Server 2012、Windows 7 和 Windows Server 2008 R2 上的 Advapi32.lib |
DLL | Windows 8.1 和 Windows Server 2012 R2 上的 Sechost.dll;Windows 8、Windows Server 2012、Windows 7 和 Windows Server 2008 R2 上的 Advapi32.dll |