GetThreadPriority  1JL23W. 

The GetThreadPriority function returns the priority value for the specified thread. This value, together with the priority class of the thread s process, determines the thread s base-priority level.

int GetThreadPriority(

    HANDLE hThread

// handle to thread

   );

 

 

Parameters

hThread

Identifies the thread.

Windows NT: The handle must have THREAD_QUERY_INFORMATION access. For more information, see Thread ObjectsXZNTT..

 

Return Values

If the function succeeds, the return value is the thread s priority level.

If the function fails, the return value is THREAD_PRIORITY_ERROR_RETURN. To get extended error information, call GetLastError11C2VS7.

The thread s priority level is one of the following values:

Priority

Meaning

THREAD_PRIORITY_ABOVE_NORMAL

 

 

Indicates 1 point above normal priority for the priority class.

THREAD_PRIORITY_BELOW_NORMAL

 

 

Indicates 1 point below normal priority for the priority class.

THREAD_PRIORITY_HIGHEST

 

 

Indicates 2 points above normal priority for the priority class.

THREAD_PRIORITY_IDLE

 

 

Indicates a base-priority level of 1 for IDLE_PRIORITY_CLASS, NORMAL_PRIORITY_CLASS, or HIGH_PRIORITY_CLASS processes, and a base-priority level of 16 for REALTIME_PRIORITY_CLASS processes.

THREAD_PRIORITY_LOWEST

 

 

Indicates 2 points below normal priority for the priority class.

THREAD_PRIORITY_NORMAL

 

 

Indicates normal priority for the priority class.

THREAD_PRIORITY_TIME_CRITICAL

 

 

Indicates a base-priority level of 15 for IDLE_PRIORITY_CLASS, NORMAL_PRIORITY_CLASS, or HIGH_PRIORITY_CLASS processes, and a base-priority level of 31 for REALTIME_PRIORITY_CLASS processes.

 

Remarks

Every thread has a base-priority level determined by the thread s priority value and the priority class of its process. The operating system uses the base-priority level of all executable threads to determine which thread gets the next slice of CPU time. Threads are scheduled in a round-robin fashion at each priority level, and only when there are no executable threads at a higher level will scheduling of threads at a lower level take place.

For a table that shows the base-priority levels for each combination of priority class and thread priority value, refer to the SetPriorityClass function.

See Also

GetPriorityClass, SetPriorityClass, SetThreadPriority