プラットフォーム SDK
GetProcessAffinityMask
指定されたプロセスのプロセスアフィニティマスクとシステムのシステムアフィニティマスクを返します。
プロセスアフィニティマスクは、そのプロセスを実行できるプロセッサを表すビットから構成されるビットベクタです。システムアフィニティマスクはシステムに含まれているプロセッサを表すビットから構成されるビットベクタです。
プロセスアフィニティマスクは、システムアフィニティマスクの真部分集合です。プロセスは、システムに含まれているプロセッサでしか実行できません。
BOOL GetProcessAffinityMask(
HANDLE hProcess, // 操作対象プロセスのハンドル
LPDWORD lpProcessAffinityMask, // プロセスアフィニティマスクを受け取る
// 構造のポインタ
LPDWORD lpSystemAffinityMask // システムアフィニティマスクを受け取る
// 構造のポインタ
); パラメータ
- hProcess
- アフィニティマスクを調べたいプロセスの開いたハンドルを指定します。
Windows NT: このハンドルには、PROCESS_QUERY_INFORMATION アクセス権が必要です。 - lpProcessAffinityMask
- DWORD 変数へのポインタを指定します。この変数には、指定したプロセスのプロセスアフィニティマスクが入ります。
- lpSystemAffinityMask
- DWORD 変数へのポインタを指定します。この変数には、システムのシステムアフィニティマスクが入ります。
戻り値
関数が成功すると、0 以外の値が返ります。
Windows NT: 成功すると、lpProcessAffinityMask が指す DWORD 変数と lpSystemAffinityMask が指す DWORD 変数がそれぞれ対応するアフィニティマスクに設定されます。
Windows 95: 成功すると、lpProcessAffinityMask が指す DWORD 変数と lpSystemAffinityMask が指す DWORD 変数がそれぞれ 1 に設定されます。
関数が失敗すると、0 が返ります。lpProcessAffinityMask と lpSystemAffinityMask が指す 2 つの DWORD 変数の値は未定義になります。拡張エラー情報を取得するには、 関数を使います。
対応情報
Windows NT: バージョン 3.5 以降を使います。
Windows: Windows 95 以降を使います。
ヘッダー : winbase.h で宣言されています。
インポートライブラリ : kernel32.lib とリンクします。
参照
SetProcessAffinityMask、SetThreadAffinityMask