Platform SDK: DLLs, Processes, and Threads |
The GetThreadPriority function retrieves 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 );
Windows NT/2000: The handle must have THREAD_QUERY_INFORMATION access. For more information, see Thread Security and Access Rights.
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 GetLastError.
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, BELOW_NORMAL_PRIORITY_CLASS, NORMAL_PRIORITY_CLASS, ABOVE_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, BELOW_NORMAL_PRIORITY_CLASS, NORMAL_PRIORITY_CLASS, ABOVE_NORMAL_PRIORITY_CLASS, or HIGH_PRIORITY_CLASS processes, and a base-priority level of 31 for REALTIME_PRIORITY_CLASS processes. |
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.
Windows NT/2000: Requires Windows NT 3.1 or later.
Windows 95/98: Requires Windows 95 or later.
Header: Declared in Winbase.h; include Windows.h.
Library: Use Kernel32.lib.
Processes and Threads Overview, Process and Thread Functions, GetPriorityClass, OpenThread, SetPriorityClass, SetThreadPriority