次の方法で共有


KeQueryActiveProcessorCount 関数 (wdm.h)

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

構文

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

パラメーター

[out, optional] ActiveProcessors

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

戻り値

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

注釈

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

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

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

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

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

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

要件

要件
サポートされている最小のクライアント Windows Vista 以降のバージョンの Windows で使用できます。
対象プラットフォーム ユニバーサル
Header wdm.h (Wdm.h、Ntddk.h を含む)
Library NtosKrnl.lib
[DLL] NtosKrnl.exe
IRQL 任意のレベル

こちらもご覧ください

KeQueryActiveProcessorCountEx

KeQueryActiveProcessors

KeRegisterProcessorChangeCallback