traceSetInformation 函数 (evntrace.h)

TraceSetInformation 函数配置事件跟踪会话设置。

语法

ULONG WMIAPI TraceSetInformation(
  [in] TRACEHANDLE      SessionHandle,
  [in] TRACE_INFO_CLASS InformationClass,
  [in] PVOID            TraceInformation,
  [in] ULONG            InformationLength
);

参数

[in] SessionHandle

要配置的事件跟踪会话的句柄。 启动新的跟踪时 ,StartTrace 函数返回此句柄。 若要获取现有跟踪的句柄,请使用 ControlTrace 根据跟踪的名称查询跟踪属性,然后从返回EVENT_TRACE_PROPERTIES数据的 Wnode.HistoricalContext 字段中获取句柄。

[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。 这只能用于临时诊断目的,因为它会增加系统的内存使用量。

要求

   
最低受支持的客户端 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

请参阅

TRACE_QUERY_INFO_CLASS

TraceQueryInformation