SetPriorityClass

指定されたプロセスの優先度クラスを設定します。

BOOL SetPriorityClass(
    HANDLE hProcess,     // プロセスハンドル
    DWORD  fdwPriority   // 優先度クラス
);

KERNEL32.DLL

引数

hProcess

優先度を変更するプロセスのハンドルを指定します。

Windows NT/2000/XP: このハンドルは PROCESS_SET_INFORMATION アクセスを持っていなければなりません。

fdwPriority

プロセスの優先度クラスを指定します。以下の値のいずれかを指定します。

意味
0x00000020 (NORMAL_PRIORITY_CLASS) 通常クラス

特別なスケジューリングを必要としない、一般的なプロセスであることを指定します。

0x00000040 (IDLE_PRIORITY_CLASS) アイドルクラス

システムがアイドル状態のときにだけスレッドを実行するプロセスであることを指定します。アイドルクラスの優先権は子プロセスに引き継がれます。

0x00000080 (HIGH_PRIORITY_CLASS) 優先クラス

すぐに実行されなければならないタイムクリティカルなタスクを実行するプロセスであることを指定します。この優先度クラスのプロセスに属するスレッドは、通常クラスやアイドルクラスのプロセスに属するスレッドのより優先して実行されます。このクラスのアプリケーションはほぼすべての CPU 空き時間を占有可能となるため、このクラスを設定する場合は十分に注意する必要があります。

0x00000100 (REALTIME_PRIORITY_CLASS) リアルタイムクラス

最も高い優先順位クラスを持つプロセスであることを指定します。この優先度クラスのプロセスに属するスレッドは、他のすべてのプロセス(システムの重要なタスクを実行するOS のプロセスも含む)に属するスレッドのより優先して実行されます。

0x00004000 (BELOW_NORMAL_PRIORITY_CLASS)

Windows 2000/XP: IDLE_PRIORITY_CLASS 以上で NORMAL_PRIORITY_CLASS 以下の優先度を持つことを示します。

0x00008000 (ABOVE_NORMAL_PRIORITY_CLASS)

Windows 2000/XP: NORMAL_PRIORITY_CLASS 以上で HIGH_PRIORITY_CLASS 以下の優先度を持つことを示します。

戻り値

成功すると 0 以外の値が返ります。

失敗すると 0 が返ります。拡張エラー情報を取得するには、 GetLastError 関数を使います。

解説

それぞれのスレッドは、プロセスの優先度クラスとスレッドの相対優先度から決定される基本優先度を持ちます。システムは、どのスレッドに次の CPU のタイムスライスを与えるかを決定するのに、すべての実行可能スレッドの基本優先度を使用します。スレッドの相対優先度は SetThreadPriority 関数で指定します。

対応情報

Windows 95 以降 / Windows NT 3.1 以降