SetPriorityClass
The SetPriorityClass
function sets the priority class for the specified process. This value together
with the priority value of each thread of the process determines each thread s
base priority level.
BOOL SetPriorityClass(
HANDLE hProcess, |
// handle to the
process |
DWORD dwPriorityClass |
// priority class
value |
); |
|
Parameters
hProcess
Identifies
the process.
Windows
NT: The handle must have the
PROCESS_SET_INFORMATION access right. For more information, see Process
Objects
dwPriorityClass
Specifies the
priority class for the process. Specify one of the following values:
Priority |
Meaning |
HIGH_PRIORITY_CLASS |
Specify
this class for a process that performs time-critical tasks that must be
executed immediately. The threads of the process preempt the threads of
normal or idle priority class processes. An example is Windows Task List,
which must respond quickly when called by the user, regardless of the load on
the operating system. Use extreme care when using the high-priority class,
because a high-priority class application can use nearly all available CPU
time. |
IDLE_PRIORITY_CLASS |
Specify
this class for a process whose threads run only when the system is idle. The
threads of the process are preempted by the threads of any process running in
a higher priority class. An example is a screen saver. The idle-priority
class is inherited by child processes. |
NORMAL_PRIORITY_CLASS |
Specify
this class for a process with no special scheduling needs. |
REALTIME_PRIORITY_CLASS |
Specify
this class for a process that has the highest possible priority. The threads
of the process preempt the threads of all other processes, including
operating system processes performing important tasks. For example, a
real-time process that executes for more than a very brief interval can cause
disk caches not to flush or cause the mouse to be unresponsive. |
Return Values
If the
function succeeds, the return value is nonzero.
If the
function fails, the return value is zero. To get extended error information,
call GetLastError
Remarks
Every thread
has a base priority level determined by the thread s priority value and the
priority class of its process. The system uses the base priority level of all
executable threads to determine which thread gets the next slice of CPU time.
The SetThreadPriority
See Also