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 によって指される構造体内のアフィニティ マスク内のビット数超えることはできません。 アフィニティ マスクは、グループ内のプロセッサの最大数も決定します。
Windows 10 バージョン 2004 以前のバージョンでは、システムの初期化中に、グループに収まるよりも多くの論理プロセッサを含む NUMA ハードウェア ノードが検出された場合、Windows はノードをより小さい論理ノードに分割します。 これらの各ノードは、グループの最大サイズを超えません。 NodeNumber パラメーターは、論理ノードを識別します。 グループあたりのプロセッサの最大数を取得するには、KeQueryMaximumProcessorCountEx ルーチンを呼び出します。
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows 7 以降のバージョンの Windows で使用できます。 |
ターゲット プラットフォーム の | 万国 |
ヘッダー | wdm.h (Wdm.h、Ntddk.h、Ntifs.h を含む) |
ライブラリ | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | 任意のレベル |