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
(PWNODE_HEADER) BufferHistoricalContext 成员指定的跟踪句柄无效。
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) 的值。

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

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

TraceInformation 缓冲区的大小(以字节为单位)必须大于或等于 size of (TRACEHANDLE) 的值。

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

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

TraceInformation 缓冲区的大小(以字节为单位)必须大于或等于 (ULONG) 的 size 值

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

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

TraceInformation 缓冲区的大小(以字节为单位)必须大于或等于 (ULONG) 的 size 值

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

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

TraceInformation 缓冲区的大小(以字节为单位)必须大于或等于 size of (TRACEHANDLE) 的值。

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

TraceInformation 缓冲区的大小(以字节为单位)必须大于或等于 (* msize of (TRACEHANDLE) ) 的值。

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

TraceInformation 缓冲区的大小(以字节为单位)必须大于或等于 size of (TRACEHANDLE) 。

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

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

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

WmiQueryTraceInformation 在调用方 IRQL 处运行。

要求

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

另请参阅

IoWmiWriteEvent

TRACE_INFORMATION_CLASS

WmiFireEvent

WmiTraceMessage

WmiTraceMessageVa