GetProcessAffinityMask

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

GetProcessAffinityMask hProcess, lpProcessAffinityMask, lpSystemAffinityMask

hProcess : [intptr] アフィニティマスクを取得したいプロセスのハンドル。このハンドルは PROCESS_QUERY_INFORMATION または PROCESS_QUERY_LIMITED_INFORMATION アクセス権を持つ必要がある。詳細は Process Security and Access Rights を参照。Windows Server 2003 および Windows XP: ハンドルは PROCESS_QUERY_INFORMATION アクセス権を持つ必要がある。
lpProcessAffinityMask : [var] 指定したプロセスのアフィニティマスクを受け取る変数へのポインタ。
lpSystemAffinityMask : [var] システムのアフィニティマスクを受け取る変数へのポインタ。

(プラグイン / モジュール : kernel32.dll)

解説

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

[戻り値]
関数が成功した場合、戻り値は 0 以外で、関数は lpProcessAffinityMask と lpSystemAffinityMask
が指す変数を適切なアフィニティマスクに設定する。64
を超えるプロセッサを持つシステムで、呼び出しプロセスのスレッドが単一のプロセッサグループに存在する場合、関数は
lpProcessAffinityMask と lpSystemAffinityMask
が指す変数を、プロセスアフィニティマスクとそのグループのアクティブな論理プロセッサのプロセッサマスクに設定する。呼び出しプロセスが複数のグループにスレッドを持つ場合、関数は両方のアフィニティマスクに
0 を返す。関数が失敗した場合、戻り値は 0 で、lpProcessAffinityMask と lpSystemAffinityMask
が指す変数の値は未定義となる。拡張エラー情報を取得するには GetLastError を呼ぶ。

[備考]

プロセスアフィニティマスクは、各ビットがプロセスの実行を許可されたプロセッサを表すビットベクタである。システムアフィニティマスクは、各ビットがシステムに構成されているプロセッサを表すビットベクタである。プロセスアフィニティマスクはシステムアフィニティマスクのサブセットである。プロセスはシステムに構成されているプロセッサ上でのみ実行可能である。したがって、システムアフィニティマスクが特定のプロセッサに
0 ビットを指定している場合、プロセスアフィニティマスクはそのプロセッサに 1 ビットを指定できない。Windows 11 および
Windows Server 2022 以降では、64
を超えるプロセッサを持つシステムにおいて、プロセスとスレッドのアフィニティは既定でシステム内のすべてのプロセッサ群(すべてのプロセッサグループにまたがる)に及ぶ。GetProcessAffinityMask
関数は、lpProcessAffinityMask と lpSystemAffinityMask
をプロセスのプライマリグループ上のプロセスおよびシステムプロセッサマスクに設定する。プロセスがプロセスのプライマリグループ外で 1
つ以上のスレッドのアフィニティを明示的に設定していた場合、関数は両方のアフィニティマスクに 0 を返す。ただし、hHandle
が現在のプロセスへのハンドルを指定する場合、関数は常に呼び出しスレッドのプライマリグループ(既定ではプロセスのプライマリグループと同じ)を使用して
lpProcessAffinityMask と lpSystemAffinityMask を設定する。

情報

プラグイン / モジュールkernel32.dll
バージョン1.0
作成日2026/04/16
著作者IronHSP / CsWin32 bridge
URLhttps://github.com/inovia/IronHSP
備考Win32 API の kernel32.dll 関数群。CsWin32 + win32metadata から自動生成。
hsp3net 専用 (intptr / NSTRUCT / wstr を使用)。
タイプ拡張命令
グループWin32API
対応環境
  • Windows 版 HSP
hs ファイルhsphelp\win32_kernel32_gen2.hs