次の方法で共有


GetNumaNodeProcessorMaskEx 関数 (systemtopologyapi.h)

ノードが属しているプロセッサ グループに関係なく、ノードのプロセッサ マスクを取得します。

構文

BOOL GetNumaNodeProcessorMaskEx(
  [in]  USHORT          Node,
  [out] PGROUP_AFFINITY ProcessorMask
);

パラメーター

[in] Node

ノード番号。

[out] ProcessorMask

指定したノードのプロセッサ マスクを受け取る GROUP_AFFINITY 構造体へのポインター。 プロセッサ マスクは、各ビットがプロセッサを表し、それがノード内にあるかどうかを表すビット ベクトルです。

指定したノードにプロセッサが構成されていない場合、Mask メンバーは 0 になり、グループ メンバーは未定義になります。

戻り値

関数が成功した場合、戻り値は 0 以外です。

関数が失敗した場合、戻り値は 0 です。

備考

GetNumaNodeProcessorMaskEx 関数は、GetNumaNodeProcessorMask とは異なり、ノードが属するグループに関係なく、ノードのプロセッサ マスクを取得できます。 つまり、ノードが呼び出し元のスレッドと同じグループに存在する必要はありません。 GetNumaNodeProcessorMask 関数は、呼び出し元のスレッドと同じグループ内のノードに対してのみプロセッサ マスクを取得できます。

システム内の最も高い番号のノードを取得するには、GetNumaHighestNodeNumber 関数を使用します。 この数は、システム内のノードの合計数と等しいとは限りません。

プロセスのすべてのスレッドが同じノードで確実に実行されるようにするには、SetProcessAffinityMask 関数と、同じノード内のプロセッサを指定するプロセス アフィニティ マスクを使用します。

この関数を使用するアプリケーションをコンパイルするには、_WIN32_WINNT>= 0x0601を設定します。 詳細については、「Windows ヘッダーの使用」を参照してください。

手記

TBD リリース Iron以降では、この関数とその他の NUMA 関数の動作が変更され、その 64 個のプロセッサを含むノードを含むシステムのサポートが向上しました。 この API の古い動作の有効化に関する情報など、この変更の詳細については、「NUMA サポート」を参照してください。

TBD リリース Iron 以降の動作

各ノードには、システムによってプライマリ グループが割り当てられます。 GetNumaNodeProcessorMaskEx によって返される GROUP_AFFINITY は、ノードのプライマリ グループ用です。

以前のバージョンでの動作

指定したノードの GROUP_AFFINITY が返されます。

必要条件

要件 価値
サポートされる最小クライアント Windows 7 [デスクトップ アプリのみ]
サポートされる最小サーバー Windows Server 2008 R2 [デスクトップ アプリのみ]
ターゲット プラットフォーム ウィンドウズ
ヘッダー systemtopologyapi.h (Windows.h を含む)
ライブラリ Kernel32.lib
DLL Kernel32.dll

関連項目

GROUP_AFFINITY

GetNumaNodeProcessorMask

NUMA サポート

プロセッサ グループの