GetPriorityClass-Funktion (processthreadsapi.h)
Ruft die Prioritätsklasse für den angegebenen Prozess ab. Dieser Wert bestimmt, gemeinsam mit dem Prioritätswert für jeden Thread des Prozesses, die Basisprioritätsebene jedes Threads.
Syntax
DWORD GetPriorityClass(
[in] HANDLE hProcess
);
Parameter
[in] hProcess
Ein Handle für den Prozess.
Das Handle muss über das PROCESS_QUERY_INFORMATION - oder PROCESS_QUERY_LIMITED_INFORMATION-Zugriffsrecht verfügen. Weitere Informationen finden Sie unter Prozesssicherheit und Zugriffsrechte.
Windows Server 2003 und Windows XP: Das Handle muss über das zugriffsrecht PROCESS_QUERY_INFORMATION verfügen.
Rückgabewert
Wenn die Funktion erfolgreich ist, ist der Rückgabewert die Prioritätsklasse des angegebenen Prozesses.
Wenn die Funktion fehlerhaft ist, ist der Rückgabewert null. Um erweiterte Fehlerinformationen zu erhalten, rufen Sie GetLastError auf.
Die Prioritätsklasse des Prozesses ist einer der folgenden Werte.
Rückgabecode/-wert | BESCHREIBUNG |
---|---|
|
Prozess, der über NORMAL_PRIORITY_CLASS , aber unterhalb HIGH_PRIORITY_CLASS Priorität hat. |
|
Prozess, der über IDLE_PRIORITY_CLASS , aber unterhalb NORMAL_PRIORITY_CLASS Priorität hat. |
|
Prozess, der zeitkritische Aufgaben ausführt, die sofort ausgeführt werden müssen, damit er ordnungsgemäß ausgeführt wird. Die Threads eines Klassenprozesses mit hoher Priorität verdrängen die Threads normaler oder leerer Prioritätsklassenprozesse. Ein Beispiel ist die Aufgabenliste, die unabhängig von der Auslastung des Betriebssystems schnell reagieren muss, wenn der Benutzer aufgerufen wird. Verwenden Sie bei Verwendung der Klasse mit hoher Priorität äußerste Sorgfalt, da eine CPU-gebundene Anwendung mit hoher Priorität fast alle verfügbaren Zyklen verwenden kann. |
|
Prozess, dessen Threads nur ausgeführt werden, wenn sich das System im Leerlauf befindet und von den Threads eines Prozesses, der in einer Klasse mit höherer Priorität ausgeführt wird, vorzeitig entfernt wird. Ein Beispiel ist ein Bildschirmschoner. Diese Leerlauf-Prioritätsklasse wird von untergeordneten Prozessen geerbt. |
|
Verarbeiten ohne besondere Terminplanungsanforderungen. |
|
Prozess, der die höchstmögliche Priorität hat. Die Threads eines Echtzeitprioritätsklassenprozesses verdrängen die Threads aller anderen Prozesse, einschließlich Betriebssystemprozessen, die wichtige Aufgaben ausführen. Beispielsweise kann ein Echtzeitprozess, der mehr als ein sehr kurzes Intervall ausgeführt wird, dazu führen, dass Datenträgercaches nicht geleert werden oder die Maus nicht reagiert. |
Hinweise
Jeder Thread verfügt über eine Basisprioritätsebene, die durch den Prioritätswert des Threads und die Prioritätsklasse des Prozesses bestimmt wird. Das Betriebssystem verwendet die Basisprioritätsebene aller ausführbaren Threads, um zu bestimmen, welcher Thread den nächsten Slice der CPU-Zeit erhält. Threads werden auf jeder Prioritätsebene im Roundrobin-Modus geplant, und nur wenn keine ausführbaren Threads auf einer höheren Ebene vorhanden sind, erfolgt die Planung von Threads auf einer niedrigeren Ebene.
Eine Tabelle mit den Basisprioritätsebenen für jede Kombination aus Prioritätsklasse und Threadprioritätswert finden Sie unter Planen von Prioritäten.
Die Prioritätsklasse wird von der Führungskraft verwaltet, sodass alle Prozesse über eine Prioritätsklasse verfügen, die abgefragt werden kann.
Beispiele
Ein Beispiel finden Sie unter Erstellen einer Momentaufnahme und Anzeigen von Prozessen.
Anforderungen
Unterstützte Mindestversion (Client) | Windows XP [Desktop-Apps | UWP-Apps] |
Unterstützte Mindestversion (Server) | Windows Server 2003 [Desktop-Apps | UWP-Apps] |
Zielplattform | Windows |
Kopfzeile | processthreadsapi.h (einschließlich Windows.h unter Windows Server 2003, Windows Vista, Windows 7, Windows Server 2008 Windows Server 2008 R2) |
Bibliothek | Kernel32.lib |
DLL | Kernel32.dll |