WmiQueryTraceInformation 函数 (wdm.h)

WmiQueryTraceInformation 例程返回有关 WMI 事件跟踪的信息。

语法

NTSTATUS WmiQueryTraceInformation(
  [in]            TRACE_INFORMATION_CLASS TraceInformationClass,
  [out]           PVOID                   TraceInformation,
  [in]            ULONG                   TraceInformationLength,
  [out, optional] PULONG                  RequiredLength,
  [in, optional]  PVOID                   Buffer
);

参数

[in] TraceInformationClass

指定要返回有关事件跟踪的信息类型的 TRACE_INFORMATION_CLASS 枚举器。

[out] TraceInformation

指向调用方分配的输出缓冲区的指针,其中例程返回由 TraceInformationClass指定的事件跟踪信息。

[in] TraceInformationLength

指定 TraceInformation 缓冲区的大小(以字节为单位)。

[out, optional] RequiredLength

指向例程返回的值的指针,该值指定 TraceInformation 缓冲区所需的大小(以字节为单位)。 如果调用方不使用所需的长度信息,则调用方应将 requiredLength 设置为 NULL

[in, optional] Buffer

指向调用方提供的特定于查询的输入信息的指针。 如果不需要调用方提供的信息,则调用方应将 Buffer 设置为 NULL

返回值

返回代码 描述
STATUS_SUCCESS
成功
STATUS_INFO_LENGTH_MISMATCH
TraceInformation 缓冲区的大小不等于指定事件跟踪信息所需的大小。
STATUS_INVALID_HANDLE
HistoricalContext PWNODE_HEADER 成员指定的跟踪句柄Buffer 无效。
STATUS_INVALID_INFO_CLASS
指定的事件跟踪信息类型无效。
STATUS_INVALID_PARAMETER
为返回给定其名称的跟踪句柄而提供的事件跟踪的名称无效。
STATUS_INVALID_PARAMETER_MIX
调用方未提供指定事件跟踪信息所需的信息。
STATUS_MORE_ENTRIES
TraceInformation 缓冲区不够大,无法容纳所有有效事件跟踪句柄的数组。
STATUS_NOT_FOUND
找不到全局记录器。

言论

对于 TraceInformationClass指定的每种类型的事件跟踪信息,下表提供:

  • 输入要求
  • WmiQueryTraceInformationTraceInformation 缓冲区中返回的信息
TraceClassInformation 的值 输入要求 返回的信息
TraceIdClass TraceInformationLength 等于 sizeof(ULONG) 的值。

TraceInformation 缓冲区的大小大于或等于 sizeof(ULONG) 的值。

HistoricalContext 成员(PWNODE_HEADER)Buffer 指定事件跟踪句柄。

*(PULONG)TraceInformation 设置为事件跟踪句柄的记录器 ID。
TraceHandleClass TraceInformationLength 等于 sizeof(TRACEHANDLE) 的值。

TraceInformation 缓冲区的大小必须大于或等于 sizeof(TRACEHANDLE) 的值。

*(PULONG)Buffer 设置为记录器 ID。

*(PTRACEHANDLE)TraceInformation 设置为指定记录器的事件跟踪句柄。 如果指定的记录器 ID 为零,则返回内核记录器的事件跟踪句柄。
TraceEnableFlagsClass TraceInformationLength 大于或等于 sizeof(ULONG) 的值。

TraceInformation 缓冲区的大小必须大于或等于 sizeof(ULONG) 的值。

HistoricalContext 成员(PWNODE_HEADER)Buffer 指定事件跟踪句柄。

*(PULONG)TraceInformation 设置为为指定事件跟踪句柄设置的启用标志。
TraceEnableLevelClass TraceInformationLength 设置为大于或等于 sizeof(ULONG) 的值。

TraceInformation 缓冲区的大小必须大于或等于 sizeof(ULONG) 的值。

HistoricalContext 成员(PWNODE_HEADER)Buffer 指定事件跟踪句柄。

*(PULONG)TraceInformation 设置为指定事件跟踪句柄的级别。
GlobalLoggerHandleClass TraceInformationLength 等于 sizeof(TRACEHANDLE) 的值。

TraceInformation 缓冲区的大小必须大于或等于 sizeof(TRACEHANDLE) 的值。

*(PTRACEHANDLE)TraceInformation 设置为全局记录器的事件跟踪句柄。
EventLoggerHandleClass 仅供内部使用。 仅供内部使用。
AllLoggerHandlesClass TraceInformationLength 设置为 m TRACEHANDLE 值的数组的大小、字节数。

TraceInformation 缓冲区的大小必须大于或等于 (m*sizeof(TRACEHANDLE))的值)。

TraceInformation 缓冲区包含一个 n 跟踪句柄的数组,其中 n 是的最小 m、调用方提供的事件跟踪句柄数和有效的事件跟踪句柄数。 如果 TraceInformation 缓冲区太小而无法容纳所有跟踪句柄,则例程将返回STATUS_MORE_ENTRIES状态。
TraceHandleByNameClass TraceInformationLength 设置为 大小的值(TRACEHANDLE)。

TraceInformation 缓冲区的大小必须大于或等于sizeof (TRACEHANDLE) 的值。

(PUNICODE_STRING)Buffer 以 Unicode 格式指定友好跟踪名称。

*(PTRACEHANDLE)TraceInformation 设置为与指定友好名称关联的事件跟踪句柄。
 

如果调用方提供非NULLRequiredLength 指针,WmiQueryTraceInformation 也会返回指定事件跟踪信息所需的长度。

WmiQueryTraceInformation 在调用方 IRQL 上运行。

要求

要求 价值
最低支持的客户端 在 Windows XP 和更高版本的 Windows 中可用。
目标平台 普遍
标头 wdm.h (包括 Wdm.h、Ntddk.h、Ntifs.h)
NtosKrnl.lib
DLL NtosKrnl.exe
IRQL 请参阅“备注”部分。

另请参阅

IoWmiWriteEvent

TRACE_INFORMATION_CLASS

WmiFireEvent

WmiTraceMessage

WmiTraceMessageVa