TraceSetInformation 函数配置事件跟踪会话设置。
Syntax
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
这应仅用于临时诊断目的,因为它会增加系统的内存使用量。
要求
| Requirement | 价值 |
|---|---|
| 最低支持的客户端 | Windows 7 [仅限桌面应用] |
| 支持的最低服务器 | Windows Server 2008 R2 [仅限桌面应用] |
| 目标平台 | Windows操作系统 |
| Header | evntrace.h |
| Library | Windows 8.1 和 Windows Server 2012 R2 上的 AdvAPI32.Lib 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 |