次の方法で共有


KeQueryActiveProcessorCount 関数 (wdm.h)

KeQueryActiveProcessorCount ルーチンは、現在アクティブなプロセッサの数を返します。

構文

ULONG KeQueryActiveProcessorCount(
  [out, optional] PKAFFINITY ActiveProcessors
);

パラメーター

[out, optional] ActiveProcessors

現在アクティブなプロセッサのセットを表すビットマスクをルーチンが書き込む型指定された変数KAFFINITY へのポインター。 ホット追加環境では、実行時にこのマスクが変更される可能性があります。 このパラメーターは省略可能であり、呼び出し元がアクティブなプロセッサのマスクを必要としない場合 NULL として指定できます。

戻り値

KeQueryActiveProcessorCount は、現在アクティブなプロセッサの数を返します。

備考

デバイス ドライバーは、KeQueryActiveProcessorCount ルーチンを呼び出して、現在アクティブなプロセッサの数を取得します。 Windows Vista 以降のバージョンの Windows オペレーティング システム用にビルドされたデバイス ドライバーでは、KeNumberProcessors カーネル変数を使用しないでください。

呼び出し元は、KeQueryActiveProcessorCount ルーチンが返された KAFFINITY 値内のビットにプロセッサを連続してマップするか、ルーチンが呼び出されるたびに同じビットマスクを返すとは想定できません。

呼び出し元は、KeQueryActiveProcessorCount によって返される値は、ホット add CPU 機能をサポートする Windows のバージョンで実行時に変更される可能性があることにも注意する必要があります。

必要に応じて、KeRegisterProcessorChangeCallback ルーチンを呼び出して、プロセッサの数に対する変更の通知を登録します。

アクティブなプロセッサの数を取得せずにアフィニティ マスクだけを照会するには、keQueryActiveProcessors 使用します。

Windows 7 以降のバージョンの Windows では、プロセッサ グループがサポートされています。 プロセッサ グループに関する情報を処理するように設計されたドライバーでは、KeQueryActiveProcessorCount ではなく、プロセッサ グループを指定する KeQueryActiveProcessorCountEx ルーチン使用する必要があります。 ただし、Windows 7 以降のバージョンの Windows KeQueryActiveProcessorCount の実装では、プロセッサ グループをサポートしていない以前のバージョンの Windows 用に記述されたドライバーの互換性が提供されます。 この実装では、KeQueryActiveProcessorCount は、グループ 0 内のアクティブな論理プロセッサの数を返し、グループ 0 のアクティブな論理プロセッサのセットを指定する *ActiveProcessors にアフィニティ マスクを書き込みます。

必要条件

要件 価値
サポートされる最小クライアント Windows Vista 以降のバージョンの Windows で使用できます。
ターゲット プラットフォーム 万国
ヘッダー wdm.h (Wdm.h、Ntddk.h を含む)
ライブラリ NtosKrnl.lib
DLL NtosKrnl.exe
IRQL 任意のレベル

関連項目

KeQueryActiveProcessorCountEx

KeQueryActiveProcessors

KeRegisterProcessorChangeCallback