KeQueryHardwareCounterConfiguration 函数 (ntddk.h)

KeQueryHardwareCounterConfiguration 例程查询作系统,以获取用于线程分析的硬件计数器列表。

语法

NTSTATUS KeQueryHardwareCounterConfiguration(
  [out] PHARDWARE_COUNTER CounterArray,
  [in]  ULONG             MaximumCount,
  [out] PULONG            Count
);

参数

[out] CounterArray

指向调用方分配的缓冲区的指针,该缓冲区的例程将类型为 HARDWARE_COUNTER的元素数组写入其中。 每个数组元素都是包含有关硬件计数器的信息的结构。 该数组包含分配给线程分析的每个硬件计数器的一个元素。 如果例程失败,它将不向此缓冲区写入任何内容。

[in] MaximumCount

指定例程可以写入 CounterArray 参数指向的缓冲区的最大元素数。 调用方分配的缓冲区的大小必须至少 MaximumCount * sizeofHARDWARE_COUNTER) 字节。

[out] Count

指向例程写入到缓冲区的数组元素数的位置的指针,该缓冲区由 CounterArray 参数指向该缓冲区。 如果由 MaximumCount 指定的缓冲区长度不足以包含整个数组,则例程会将所需的长度写入 *Count 并返回STATUS_BUFFER_TOO_SMALL。

返回值

如果调用成功,则 KeQueryHardwareCounterConfiguration 返回STATUS_SUCCESS。 可能的错误返回值包括:

返回代码 描述
STATUS_BUFFER_TOO_SMALL MaximumCount 参数指定了不足以包含计数器配置信息的缓冲区长度。
STATUS_NOT_IMPLEMENTED 对于调用方正在运行的处理器体系结构,不实现此例程。

言论

在 Windows 7 中,此例程仅适用于基于 x86 的 x64 和基于 Itanium 的体系结构。 如果调用方在不支持的处理器体系结构上运行,则例程将返回STATUS_NOT_IMPLEMENTED。

若要将硬件计数器配置设置为用于线程分析,请调用 KeSetHardwareCounterConfiguration 例程。

要求

要求 价值
最低支持的客户端 在 Windows 7 及更高版本的 Windows 中可用。
目标平台 普遍
标头 ntddk.h (包括 Ntddk.h)
NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= APC_LEVEL

另请参阅

HARDWARE_COUNTER

KeSetHardwareCounterConfiguration