次の方法で共有


GetNumaNodeProcessorMask 関数 (winbase.h)

指定したノードのプロセッサ マスクを取得します。

構文

BOOL GetNumaNodeProcessorMask(
  [in]  UCHAR      Node,
  [out] PULONGLONG ProcessorMask
);

パラメーター

[in] Node

ノードの番号。

[out] ProcessorMask

ノードのプロセッサ マスク。 プロセッサ マスクは、各ビットがプロセッサを表し、それがノード内にあるかどうかを表すビット ベクトルです。

ノードにプロセッサが構成されていない場合、プロセッサ マスクは 0 になります。

プロセッサが 64 を超えるシステムでは、ノードが呼び出し元スレッドと同じ プロセッサ グループ 内にある場合にのみ、このパラメーターはノードのプロセッサ マスクに設定されます。 それ以外の場合、パラメーターは 0 に設定されます。

戻り値

関数が成功すると、戻り値は 0 以外になります。

関数が失敗した場合は、0 を返します。 詳細なエラー情報を得るには、GetLastError を呼び出します。

解説

システム内の最も高い番号のノードを取得するには、 GetNumaHighestNodeNumber 関数を使用します。 この数は、システム内のノードの合計数と一致することは保証されないことに注意してください。

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

GetNumaNodeProcessorMaskEx 関数を使用して、任意のプロセッサ グループ内のノードのプロセッサ マスクを取得します。

注意

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

TBD リリース アイアンから始まる動作

各ノードには、システムによってプライマリ グループが割り当てられます。 GetNumaNodeProcessorMask によって返されるマスクは、ノードのプライマリ グループ用であり、呼び出し元のスレッドがそのグループに属している場合にのみ返されます。

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

指定したノードのマスクが返されます。

要件

要件
サポートされている最小のクライアント Windows Vista、Windows XP Professional x64 Edition、SP2 搭載 Windows XP [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2003 (デスクトップ アプリのみ)
対象プラットフォーム Windows
ヘッダー winbase.h (Windows.h を含む)
Library Kernel32.lib
[DLL] Kernel32.dll

関連項目

GetNumaNodeProcessorMaskEx

GetNumaProcessorNode

NUMA サポート

プロセス関数とスレッド関数

SetProcessAffinityMask