KeQueryNodeActiveAffinity 関数 (wdm.h)
KeQueryNodeActiveAffinity ルーチンは、非均一メモリ アクセス (NUMA) アーキテクチャを持つマルチプロセッサ システム内の指定されたノードの現在のプロセッサ アフィニティを取得します。
構文
void KeQueryNodeActiveAffinity(
[in] USHORT NodeNumber,
[out, optional] PGROUP_AFFINITY Affinity,
[out, optional] PUSHORT Count
);
パラメーター
[in] NodeNumber
ノード番号。 マルチプロセッサ システムに n 個のノードが含まれている場合、ノードには 0 から n-1 の番号が付けます。 システムで最も高いノード番号 (n-1) を取得するには、 KeQueryHighestNodeNumber ルーチンを呼び出します。
[out, optional] Affinity
ルーチンがGROUP_AFFINITY構造体を書き込む呼 び 出し元によって割り当てられたバッファーへのポインター。 この構造体には、 NodeNumber で識別されるノードを含むグループのグループ番号と、ノード内のどの論理プロセッサがアクティブであるかを示すアフィニティ マスクが含まれます。 この情報が不要な場合は、このパラメーターを NULL に 設定できます。
Windows Server 2022 以降では、ノードは複数のグループにまたがることができます。 これは、ノードに 64 を超えるプロセッサが含まれている場合に発生します。 この場合、OS は各 NUMA ノードにプライマリ グループを割り当てます。 プライマリ グループは、常に最も多くのプロセッサを含むグループです。 この場合、返されるグループ アフィニティ構造は、ノードのプライマリ グループに対してです。 この動作の変更の詳細については、「 NUMA サポート」を参照してください。 コードが NUMA ノードあたり 64 を超えるプロセッサを持つシステムで実行される場合は、代わりに KeQueryNodeActiveAffinity2 を使用することを検討してください。
[out, optional] Count
Affinity が指すノード アフィニティ マスクで表されるアクティブなプロセッサの数をルーチンが書き込む位置へのポインター。 この情報が不要な場合は、このパラメーターを NULL に 設定できます。
Windows Server 2022 以降では、返される数はノードのプライマリ グループに対してです。 上記のプライマリ グループの詳細を参照してください。
戻り値
なし
解説
Affinity パラメーターが指す呼び出し元割り当てバッファーは、GROUP_AFFINITY構造体を格納するのに十分な大きさである必要があります。 この構造体の Mask メンバーには、アクティブなプロセッサを示すアフィニティ マスクが含まれています。 プロセッサがアクティブな場合、マスク内の対応するビットは 1 です。 その他のビットはすべて 0 です。
NUMA マルチプロセッサ アーキテクチャでは、ノードはメモリの領域への高速アクセスを共有するプロセッサのコレクションです。 プロセッサは他のノードのメモリにアクセスするよりも高速にノード内のメモリにアクセスできるため、メモリ アクセスは一様ではない。
ノード内のプロセッサの数は、 Affinity によって指される構造体の affinity mask 内のビット数を超えることはできません。 アフィニティ マスクは、グループ内のプロセッサの最大数も決定します。
Windows 10バージョン 2004 以前のバージョンでは、システムの初期化中に、Windows がグループに収まるよりも多くの論理プロセッサを含む NUMA ハードウェア ノードを検出した場合、Windows はノードを小さい論理ノードに分割します。 これらの各ノードは、グループの最大サイズを超えません。 NodeNumber パラメーターは論理ノードを識別します。 グループあたりのプロセッサの最大数を取得するには、 KeQueryMaximumProcessorCountEx ルーチンを呼び出します。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 7 以降のバージョンの Windows で使用できます。 |
対象プラットフォーム | ユニバーサル |
Header | wdm.h (Wdm.h、Ntddk.h、Ntifs.h を含む) |
Library | NtosKrnl.lib |
[DLL] | NtosKrnl.exe |
IRQL | 任意のレベル |