TraceSetInformation 函数 (evntrace.h)

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 设置为 TraceStackTracingInfoInformationLength 设置为 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

另请参阅

TRACE_QUERY_INFO_CLASS

TraceQueryInformation