次の方法で共有


KeGetCurrentProcessorNumber 関数 (ntddk.h)

KeGetCurrentProcessorNumber ルーチンは、呼び出し元が実行されている現在のプロセッサのシステム割り当て番号を返します。

構文

ULONG KeGetCurrentProcessorNumber();

戻り値

KeGetCurrentProcessorNumber は、呼び出し元が現在実行されているプロセッサを表す ULONG 値を返します。

備考

KeGetCurrentProcessorNumber を呼び出して、ドライバーの開発中に SMP マシンでのスピン ロックの使用をデバッグできます。 また、ドライバーがプロセッサごとのデータ 保持し、キャッシュラインの競合を減らそうとした場合は、KeGetCurrentProcessorNumber を呼び出すこともできます。

SMP マシン内のプロセッサの数は 0 から始まる値です。

Windows 7 以降のバージョンの Windows では、プロセッサ グループがサポートされています。 プロセッサ グループに関する情報を処理するように設計されたドライバーは、KeGetCurrentProcessorNumberEx ルーチン 使用する必要があります。このルーチンは、KeGetCurrentProcessorNumber ではなく、プロセッサ グループを指定。このルーチンは使用しません。 ただし、Windows 7 以降のバージョンの Windows KeGetCurrentProcessorNumber の実装では、以前のバージョンの Windows 用に記述されたドライバーの互換性が提供されます。 この実装では、KeGetCurrentProcessorNumber は、呼び出し元がグループ 0 のプロセッサで実行されている場合に、グループ相対プロセッサ番号を返します。これは、プロセッサ グループをサポートしていない以前のバージョンの Windows でのこのルーチンの動作と互換性があります。 呼び出し元がグループ 0 以外のグループのプロセッサで実行されている場合、このルーチンは、グループ 0 のプロセッサの数より少ない数を返します。 この動作により、KeQueryActiveProcessorCount ルーチンの戻り値よりも戻り値が小さくなります。

KeGetCurrentProcessorNumber の呼び出しが IRQL <= APC_LEVELで発生した場合、命令間でプロセッサスイッチが発生する可能性があります。 したがって、KeGetCurrentProcessorNumber の呼び出し元は、通常、IRQL >= DISPATCH_LEVELで実行されます。

必要条件

要件 価値
サポートされる最小クライアント Windows 2000 以降で使用できます。
ターゲット プラットフォーム デスクトップ
ヘッダー ntddk.h (Ntddk.h を含む)
IRQL 「解説」セクションを参照してください。
DDI コンプライアンス規則 する Irql_Miscellaneous_Function(ndis)

関連項目

KeGetCurrentProcessorNumberEx

KeQueryActiveProcessorCount