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。
返回值
返回代码 | 说明 |
---|---|
|
成功 |
|
TraceInformation 缓冲区的大小不等于指定事件跟踪信息所需的大小。 |
|
(PWNODE_HEADER) Buffer 的 HistoricalContext 成员指定的跟踪句柄无效。 |
|
指定的事件跟踪信息类型无效。 |
|
事件跟踪的名称(随查询一起提供,用于返回给定其名称的跟踪句柄)无效。 |
|
调用方未提供指定事件跟踪信息所需的信息。 |
|
TraceInformation 缓冲区不够大,无法容纳所有有效事件跟踪句柄的数组。 |
|
找不到全局记录器。 |
注解
对于 TraceInformationClass 指定的每种类型的事件跟踪信息,下表提供:
- 输入要求
- WmiQueryTraceInformation 在 TraceInformation 缓冲区中返回的信息
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 个跟踪句柄数组,其中 n 是 m 的最小值、调用方提供的事件跟踪句柄数以及有效事件跟踪句柄的数目。 如果 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 | 请参见“备注”部分。 |
另请参阅
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈