プラットフォーム SDK
SetThreadAffinityMask
指定されたスレッドのプロセッサアフィニティマスクを設定します。
スレッドアフィニティマスクはビットベクトルであり、各ビットはそのスレッドを実行できるプロセッサを表します。
スレッドアフィニティマスクは、そのスレッドが属するプロセスのプロセスアフィニティマスクの真部分集合でなければなりません。スレッドは、そのスレッドが属しているプロセスを実行できるプロセッサでしか実行できません。
DWORD SetThreadAffinityMask (
HANDLE hThread, // 操作対象スレッドのハンドル
DWORD dwThreadAffinityMask // スレッドアフィニティマスク
);
パラメータ
- hThread
- アフィニティマスクを設定するスレッドのハンドルを指定します。
Windows NT: このハンドルには、THREAD_SET_INFORMATION アクセス権が必要です。
- dwThreadAffinityMask
- Windows 95: 必ず 1 を指定してください。
Windows NT: スレッドのアフィニティマスクを指定します。
戻り値
関数が成功すると、0 以外の値が返ります。
Windows 95: 1 が返ります。関数を成功させるためには、hThread が有効なハンドルで、dwThreadAffinityMask が 1 でなければなりません。
Windows NT: 設定前のスレッドアフィニティマスクが返ります。
関数が失敗すると、0 が返ります。拡張エラー情報を取得するには、 関数を使います。
対応情報
Windows NT: バージョン 3.5 以降を使います。
Windows: Windows 95 以降を使います。
ヘッダ : winbase.h で宣言されています。
インポートライブラリ : kernel32.lib とリンクします。
参照
GetProcessAffinityMask、SetThreadIdealProcessor