次の方法で共有


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 で使用できます。
ターゲット プラットフォーム 万国
ヘッダー ntddk.h (Ntddk.h、Wdm.h、Ntddk.h を含む)
ライブラリ NtosKrnl.lib
DLL NtosKrnl.exe
IRQL 任意のレベル

関連項目

KeGetProcessorNumberFromIndex

KeQueryActiveProcessorCount