次の方法で共有


GetProcessAffinityMask 関数 (winbase.h)

指定されたプロセスのプロセス アフィニティ マスクと、システムのシステム アフィニティ マスクを取得します。

構文

BOOL GetProcessAffinityMask(
  [in]  HANDLE     hProcess,
  [out] PDWORD_PTR lpProcessAffinityMask,
  [out] PDWORD_PTR lpSystemAffinityMask
);

パラメーター

[in] hProcess

アフィニティ マスクが必要なプロセスへのハンドル。

このハンドルには、PROCESS_QUERY_INFORMATION または PROCESS_QUERY_LIMITED_INFORMATION アクセス権が必要です。 詳細については、「プロセス セキュリティとアクセス権の 」を参照してください。

Windows Server 2003 および Windows XP: ハンドルには PROCESS_QUERY_INFORMATION アクセス権が必要です。

[out] lpProcessAffinityMask

指定したプロセスのアフィニティ マスクを受け取る変数へのポインター。

[out] lpSystemAffinityMask

システムのアフィニティ マスクを受け取る変数へのポインター。

戻り値

関数が成功した場合、戻り値は 0 以外であり、lpProcessAffinityMask および lpSystemAffinityMask が指す変数を適切なアフィニティ マスクに設定します。

64 を超えるプロセッサを持つシステムでは、呼び出し元プロセスのスレッドが 1 つの プロセッサ グループにある場合、この関数は lpProcessAffinityMask によって指される変数を設定し、lpSystemAffinityMask をそのグループのアクティブな論理プロセッサのプロセス アフィニティ マスクとプロセッサ マスクに します。 呼び出し元のプロセスに複数のグループのスレッドが含まれている場合、関数は両方のアフィニティ マスクに対して 0 を返します。

関数が失敗した場合、戻り値は 0 で、lpProcessAffinityMask および lpSystemAffinityMask が指す変数の値は未定義になります。 拡張エラー情報を取得するには、GetLastError 呼び出します。

備考

プロセス アフィニティ マスクは、各ビットがプロセスの実行が許可されているプロセッサを表すビット ベクトルです。 システム アフィニティ マスクは、各ビットがシステムに構成されているプロセッサを表すビット ベクトルです。

プロセス アフィニティ マスクは、システム アフィニティ マスクのサブセットです。 プロセスは、システムに構成されたプロセッサでのみ実行できます。 したがって、システム・アフィニティ・マスクがそのプロセッサーに 0 ビットを指定する場合、プロセス・アフィニティ・マスクはプロセッサーに 1 ビットを指定できません。

Windows 11 および Windows Server 2022 以降では、64 個を超えるプロセッサを搭載したシステムでは、プロセスとスレッドのアフィニティは、既定ですべての プロセッサ グループにわたって、システム内のすべてのプロセッサにまたがっています。 GetProcessAffinityMask 関数は、lpProcessAffinityMask を設定し、プロセスに lpSystemAffinityMask し、プロセスのプライマリ グループに対するシステム プロセッサ マスクを設定します。 プロセスがプロセスのプライマリ グループの外部にある 1 つ以上のスレッドのアフィニティを明示的に設定していた場合、関数は両方のアフィニティ マスクに対してゼロを返します。 ただし、hHandle が現在のプロセスへのハンドルを指定 場合、この関数は常に呼び出し元スレッドのプライマリ グループ (既定ではプロセスのプライマリ グループと同じです) を使用して、lpProcessAffinityMask と lpSystemAffinityMask を設定します。

必要条件

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

関連項目

複数のプロセッサ する

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

プロセスの

プロセッサ グループの

SetProcessAffinityMask

SetThreadAffinityMask