KeGetProcessorNumberFromIndex 関数 (ntifs.h)
KeGetProcessorNumberFromIndex ルーチンは、システム全体のプロセッサ インデックスをグループ番号とグループ相対プロセッサ番号に変換します。
構文
NTSTATUS KeGetProcessorNumberFromIndex(
[in] ULONG ProcIndex,
[out] PPROCESSOR_NUMBER ProcNumber
);
パラメーター
[in] ProcIndex
システム全体のプロセッサ インデックス。 マルチプロセッサ システムに合計 n 個の論理プロセッサ 含まれる場合、有効なプロセッサ インデックスの範囲は 0 から n-1 です。
[out] ProcNumber
ProcIndex で識別されるプロセッサのグループ番号とグループ相対プロセッサ番号をルーチンが書き込む呼び出し元によって割り当てられたPROCESSOR_NUMBER 構造体へのポインター。
戻り値
KeGetProcessorNumberFromIndex は、呼び出しが成功した場合にSTATUS_SUCCESSを返します。 考えられるエラー戻り値は次のとおりです。
リターン コード | 形容 |
---|---|
|
ProcIndex パラメーター値が有効なプロセッサ インデックスではありません。 |
備考
このルーチンは、マルチプロセッサ システム全体でプロセッサを識別するプロセッサ インデックスを入力として受け入れます。 出力値は、グループ番号とそのグループ内のプロセッサ番号によってプロセッサを識別する PROCESSOR_NUMBER 構造体です。
たとえば、マルチプロセッサ システムに 2 つのグループが含まれており、各グループに 64 個の論理プロセッサが含まれている場合、各グループのプロセッサ番号の範囲は 0 から 63 ですが、システム全体のプロセッサ インデックスの範囲は 0 から 127 です。
システム内のアクティブな論理プロセッサの合計数を取得するには、KeQueryActiveProcessorCountEx ルーチンを呼び出します。
KeGetProcessorIndexFromNumber ルーチンは、グループ番号とグループ相対プロセッサ番号をシステム全体のプロセッサ インデックスに変換します。
例
次のコード例では、keQueryActiveProcessorCountEx を使用し、KeGetProcessorNumberFromIndex ルーチンを して、システム内のすべてのアクティブな論理プロセッサを列挙します。
ULONG Count;
ULONG ProcIndex;
PROCESSOR_NUMBER ProcNumber;
Count = KeQueryActiveProcessorCountEx(ALL_PROCESSOR_GROUPS);
for (ProcIndex = 0; ProcIndex < Count; ProcIndex += 1)
{
KeGetProcessorNumberFromIndex(ProcIndex, &ProcNumber);
// Do something with the contents of ProcNumber.
...
}
ALL_PROCESSOR_GROUPS定数値は、Winnt.h および Ntdef.h で定義されます。
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows 7 |
ターゲット プラットフォーム の | 万国 |
ヘッダー | ntifs.h (Ntddk.h、Wdm.h、Ntddk.h、Ntifs.h を含む) |
ライブラリ | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | 任意のレベル |
関連項目
KeQueryActiveProcessorCountEx の