KeQueryHardwareCounterConfiguration 関数 (ntddk.h)

KeQueryHardwareCounterConfiguration ルーチンは、オペレーティング システムに対して、スレッド プロファイリングに使用するハードウェア カウンターの一覧を照会します。

構文

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

パラメーター

[out] CounterArray

ルーチンが HARDWARE_COUNTER 型の要素の配列を書き込む呼び出し元によって割り当てられたバッファーへのポインター。 各配列要素は、ハードウェア カウンターに関する情報を含む構造体です。 配列には、スレッド プロファイルに割り当てられているハードウェア カウンターごとに 1 つの要素が含まれています。 ルーチンが失敗した場合、このバッファーには何も書き込みされません。

[in] MaximumCount

CounterArray パラメーターによって指されるバッファーにルーチンが書き込むことができる要素の最大数を指定します。 呼び出し元によって割り当てられたバッファーのサイズは、 MaximumCount * sizeof(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 で使用できます。
対象プラットフォーム ユニバーサル
Header ntddk.h (Ntddk.h を含む)
Library NtosKrnl.lib
[DLL] NtosKrnl.exe
IRQL <= APC_LEVEL

こちらもご覧ください

HARDWARE_COUNTER

KeSetHardwareCounterConfiguration