KeGetCurrentProcessorNumberEx 関数 (ntddk.h)

KeGetCurrentProcessorNumberEx ルーチンは、呼び出し元が実行されている論理プロセッサのプロセッサ番号を取得します。

構文

ULONG KeGetCurrentProcessorNumberEx(
  [out, optional] PPROCESSOR_NUMBER ProcNumber
);

パラメーター

[out, optional] ProcNumber

ルーチンが現在の論理プロセッサを識別する PROCESSOR_NUMBER 構造体を書き込む呼び出し元によって割り当てられたバッファーへのポインター。 この構造体には、グループ番号とグループ相対プロセッサ番号が含まれます。 この情報が不要な場合は、このパラメーターを NULL に 設定できます。

戻り値

KeGetCurrentProcessorNumberEx は、呼び出し元が実行されている論理プロセッサのシステム全体のプロセッサ インデックスを返します。

注釈

ProcNumberNULL 以外の場合、ProcNumber によって指されるバッファーは、PROCESSOR_NUMBER構造体を格納するのに十分な大きさである必要があります。 グループ番号とグループ相対プロセッサ番号を含むこの構造体とは対照的に、戻り値はマルチプロセッサ システム全体のプロセッサを識別するプロセッサ インデックスです。

たとえば、マルチプロセッサ システムに 2 つのグループが含まれており、各グループに 64 個の論理プロセッサが含まれている場合、各グループのプロセッサ番号は 0 から 63 の範囲ですが、システム全体のプロセッサ インデックスの範囲は 0 から 127 です。

関連ルーチン KeGetCurrentProcessorNumber は現在のプロセッサ番号を返しますが、このルーチンは KeGetCurrentProcessorNumberEx とは異なり、プロセッサのグループ番号を提供しません。 Windows 7 以降のバージョンの Windows オペレーティング システムでは、呼び出し元がグループ 0 のプロセッサで実行されている場合、 KeGetCurrentProcessorNumber はグループ相対プロセッサ番号を返します。これは、グループをサポートしていない以前のバージョンの Windows でのこのルーチンの動作と互換性があります。 ただし、呼び出し元がグループ 0 以外のグループのプロセッサで実行されている場合、このルーチンは、グループ 0 のプロセッサの数より小さい数を返します。 この動作により、戻り値が KeQueryActiveProcessorCount ルーチンの戻り値よりも小さくなります。 KeGetCurrentProcessorNumber を呼び出し、グループ指向機能を使用しない既存のドライバーは、2 つ以上のグループを持つマルチプロセッサ システムで正しく実行されます。 ただし、Windows 7 以降のバージョンの Windows オペレーティング システムでグループ指向機能を使用するドライバーでは、KeGetCurrentProcessorNumber ではなく KeGetCurrentProcessorNumberEx を呼び出す必要があります。

要件

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

こちらもご覧ください

KeGetCurrentProcessorNumber

KeQueryActiveProcessorCount

PROCESSOR_NUMBER