KeQueryHardwareCounterConfiguration 函数 (ntddk.h)

KeQueryHardwareCounterConfiguration 例程在操作系统中查询用于线程分析的硬件计数器列表。

语法

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

参数

[out] CounterArray

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

[in] MaximumCount

指定例程可以写入 到 CounterArray 参数指向的缓冲区的最大元素数。 调用方分配的缓冲区的大小必须至少为 maximumCount * 大小 ( (HARDWARE_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)
Library NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= APC_LEVEL

另请参阅

HARDWARE_COUNTER

KeSetHardwareCounterConfiguration