SetPriority method of the Win32_Process class

The SetPriority WMI class method attempts to change the execution priority of the process.

This topic uses Managed Object Format (MOF) syntax. For more information about using this method, see Calling a Method.


uint32 SetPriority(
  [in] sint32 Priority


Priority [in]

New priority class for the process. Note that these values are different than those explicitly stated in the Priority property of Win32_Process.

Idle (64)

Specified for a process with threads that run only when the system is idle. The threads of the process are preempted by the threads of a process that run in a higher priority class, for example, a screen saver. The idle-priority class is inherited by child processes.

Below Normal (16384)

Indicates a process that has priority above IDLE_PRIORITY_CLASS, but below NORMAL_PRIORITY_CLASS.

Normal (32)

Specified for a process with no special scheduling needs.

Above Normal (32768)

Indicates a process that has priority above NORMAL_PRIORITY_CLASS, but below HIGH_PRIORITY_CLASS.

High Priority (128)

Specified 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 the 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 of the available CPU time.

Realtime (256)

Specified for a process that has the highest possible priority. The threads of the process preempt the threads of all of the other processes, including operating system processes that perform 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 a mouse to be unresponsive.

Return value

Returns one of the values listed in the following list, or a different value to indicate an error. For additional error codes, see WMI Error Constants or WbemErrorEnum. For general HRESULT values, see System Error Codes.

Successful completion (0)
Access denied (2)
Insufficient privilege (3)
Unknown failure (8)
Path not found (9)
Invalid parameter (21)
Other (22–4294967295)


To set the priority to Realtime, the caller must have SeIncreaseBasePriorityPrivilege (SE_INC_BASE_PRIORITY_PRIVILEGE). Without this privilege, the highest the priority can be set to is High Priority.


The Modify the Priority Of a Running Process VBScript sample changes the priority of a running instance of Notepad.exe from Normal to Above Normal.


Minimum supported client

Windows Vista

Minimum supported server

Windows Server 2008







See also

Operating System Classes