KeQueryActiveProcessorCountEx 関数 (ntddk.h)
KeQueryActiveProcessorCountEx ルーチンは、マルチプロセッサ システムまたはシステム全体の指定されたグループ内のアクティブな論理プロセッサの数を返します。
構文
ULONG KeQueryActiveProcessorCountEx(
[in] USHORT GroupNumber
);
パラメーター
[in] GroupNumber
グループ番号。 マルチプロセッサ システムに n 個のグループが含まれている場合、有効なグループ番号の範囲は 0 から n から 1 です。 システム内のすべてのグループのすべてのアクティブなプロセッサをカウントするには、このパラメーターを ALL_PROCESSOR_GROUPS に設定します。このパラメーターは、ヘッダー ファイル Winnt.h と Ntdef.h で定義されています。
戻り値
KeQueryActiveProcessorCountEx は 、グループ内のアクティブな論理プロセッサの数を返します。 GroupNumber が有効なグループ番号ではなく、ALL_PROCESSOR_GROUPSされていない場合は、0 が返されます。
注釈
アクティブ論理プロセッサは、Windows が起動してマルチプロセッサ システムに追加した論理プロセッサです。 "アクティブ プロセッサ" という用語は、プロセッサが現在処理作業を実行しているかアイドル状態であるかに関係なく、処理作業を実行できるプロセッサに適用されます。 一部のシステムでは、システムの起動からシャットダウンまで、アクティブなプロセッサの数が変更されない場合があります。 他のシステムでは、システムの実行中に、Windows によってアクティブなプロセッサが動的に追加される場合があります。 Windows は、システムからアクティブなプロセッサを削除することはありません。 したがって、マルチプロセッサ システム内のアクティブなプロセッサの数は、システムの起動とシャットダウンの間に増加する可能性がありますが、この数は減少することはありません。
関連ルーチン KeQueryActiveProcessorCount はアクティブなプロセッサ数を返しますが、このルーチンは KeQueryActiveProcessorCountEx とは異なり、グループ番号を入力パラメーターとして受け入れません。 Windows 7 以降のバージョンの Windows オペレーティング システムでは、 KeQueryActiveProcessorCount はグループ 0 のアクティブなプロセッサ数を返します。これは、グループをサポートしていない以前のバージョンの Windows でのこのルーチンの動作と互換性があります。 この動作により、 KeQueryActiveProcessorCount を呼び出し、グループ指向機能を使用しない既存のドライバーが、2 つ以上のグループを持つマルチプロセッサ システムで正しく実行されるようになります。 ただし、Windows 7 以降のバージョンの Windows オペレーティング システムでグループ指向機能を使用するドライバーでは、KeQueryActiveProcessorCount ではなく KeQueryActiveProcessorCountEx を呼び出す必要があります。
KeQueryActiveProcessorCountEx を使用するコード例については、「KeGetProcessorNumberFromIndex」を参照してください。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 7 以降のバージョンの Windows で使用できます。 |
対象プラットフォーム | ユニバーサル |
Header | ntddk.h (Ntddk.h、Wdm.h、Ntddk.h を含む) |
Library | NtosKrnl.lib |
[DLL] | NtosKrnl.exe |
IRQL | 任意のレベル |