前回のエントリではimagecfgというユーティティを使用してプロセスアフィニティを設定したが、この方法ではバイナリのイメージヘッダを直接書き換えてしまうため変更は恒久的なものになってしまう。 動的に変更することはできないのだろうかと調べるとWin32にはプロセスアフィニティマスクを取得、設定するAPIが用意されており、例えば.NET C#等からなら簡単に操作することができることが判った。 使うAPIは以下の二つ。 [DllImport("kernel32.dll", SetLastError = true)] static extern bool GetProcessAffinityMask(IntPtr hProcess, out UIntPtr lpProcessAffinityMask, out UIntPtr lpSystemAffinityMask); [DllImport("