GetPriorityClass 函式 (processthreadsapi.h)

擷取指定進程的優先順序類別。 這個值與處理序每個執行緒的優先權值會判斷每個執行緒的基礎優先權層級。

語法

DWORD GetPriorityClass(
  [in] HANDLE hProcess
);

參數

[in] hProcess

進程的控制碼。

控制碼必須具有 PROCESS_QUERY_INFORMATIONPROCESS_QUERY_LIMITED_INFORMATION 存取權限。 如需詳細資訊,請參閱 處理安全性和存取權限

Windows Server 2003 和 Windows XP: 控制碼必須具有 PROCESS_QUERY_INFORMATION 存取權限。

傳回值

如果函式成功,傳回值就是指定進程的優先順序類別。

如果此函式失敗,則傳回值為零。 若要取得擴充的錯誤資訊,請呼叫 GetLastError

進程的優先順序類別是下列其中一個值。

傳回碼/值 描述
ABOVE_NORMAL_PRIORITY_CLASS
0x00008000
優先順序高於 NORMAL_PRIORITY_CLASS 但 低於 HIGH_PRIORITY_CLASS的程式。
BELOW_NORMAL_PRIORITY_CLASS
0x00004000
優先順序高於 IDLE_PRIORITY_CLASS 但 低於 NORMAL_PRIORITY_CLASS的程式。
HIGH_PRIORITY_CLASS
0x00000080
執行必須立即執行的時間關鍵性工作,以便其正確執行的程式。 高優先順序類別進程的執行緒會先占一般或閒置優先權類別進程的執行緒。 範例是工作清單,無論作業系統上的負載為何,使用者呼叫時都必須快速回應。 使用高優先順序類別時使用非常小心,因為高優先順序類別 CPU 系結應用程式可以使用幾乎所有可用的週期。
IDLE_PRIORITY_CLASS
0x00000040
只有在系統處於閒置狀態且由任何在較高優先順序類別中執行之進程的執行緒先占時,才會執行其執行緒的進程。 例如,螢幕保護裝置程式。 閒置優先權類別是由子進程繼承。
NORMAL_PRIORITY_CLASS
0x00000020
不需要特殊排程需求的處理常式。
REALTIME_PRIORITY_CLASS
0x00000100
具有最高優先順序的程式。 即時優先順序類別進程的執行緒會先占所有其他進程的執行緒,包括執行重要工作的作業系統進程。 例如,執行超過非常簡短間隔的即時程式可能會導致磁片快取不會排清或造成滑鼠沒有回應。

備註

每個執行緒都有一個基底優先順序層級,由執行緒的優先順序值和其進程的優先順序類別決定。 作業系統會使用所有可執行執行緒的基底優先順序層級,來判斷哪一個執行緒會取得下一個 CPU 時間配量。 執行緒會以迴圈配置資源的方式排程在每個優先順序層級,而且只有在較高層級沒有可執行執行緒時,才會在較低層級排程執行緒。

如需顯示優先順序類別和執行緒優先順序值之每個組合之基底優先順序層級的資料表,請參閱 排程優先順序

優先順序類別是由主管維護,因此所有進程都有可查詢的優先順序類別。

範例

如需範例,請參閱 擷取快照集和檢視程式

需求

   
最低支援的用戶端 Windows XP [傳統型應用程式 |UWP 應用程式]
最低支援的伺服器 Windows Server 2003 [傳統型應用程式 |UWP 應用程式]
目標平台 Windows
標頭 processthreadsapi.h (Windows Server 2003、Windows Vista、Windows 7、Windows Server 2008 Windows Server 2008 R2)
程式庫 Kernel32.lib
DLL Kernel32.dll

另請參閱

GetThreadPriority

處理序和執行緒函式

程序

排程優先順序

SetPriorityClass

SetThreadPriority