GetPriorityClass, fonction (processthreadsapi.h)

Récupère la classe de priorité pour le processus spécifié. Cette valeur, ainsi que la valeur de priorité de chaque thread du processus, déterminent le niveau de priorité de base de chaque thread.

Syntaxe

DWORD GetPriorityClass(
  [in] HANDLE hProcess
);

Paramètres

[in] hProcess

Handle du processus.

Le handle doit avoir le droit d’accès PROCESS_QUERY_INFORMATION ou PROCESS_QUERY_LIMITED_INFORMATION . Pour plus d’informations, consultez Droits d’accès et de sécurité des processus.

Windows Server 2003 et Windows XP : Le handle doit avoir le droit d’accès PROCESS_QUERY_INFORMATION .

Valeur retournée

Si la fonction réussit, la valeur de retour est la classe de priorité du processus spécifié.

Si la fonction échoue, la valeur de retour est égale à zéro. Pour obtenir des informations détaillées sur l’erreur, appelez GetLastError.

La classe de priorité du processus est l’une des valeurs suivantes.

Code/valeur de retour Description
ABOVE_NORMAL_PRIORITY_CLASS
0x00008000
Processus prioritaire au-dessus de NORMAL_PRIORITY_CLASS mais inférieur à HIGH_PRIORITY_CLASS.
BELOW_NORMAL_PRIORITY_CLASS
0x00004000
Processus prioritaire au-dessus de IDLE_PRIORITY_CLASS mais inférieur à NORMAL_PRIORITY_CLASS.
HIGH_PRIORITY_CLASS
0x00000080
Processus qui effectue des tâches à durée critique qui doivent être exécutées immédiatement pour qu’il s’exécute correctement. Les threads d’un processus de classe de priorité élevée préemptent les threads des processus de classe de priorité normaux ou inactifs. Par exemple, la liste des tâches doit répondre rapidement lorsqu’elle est appelée par l’utilisateur, quelle que soit la charge sur le système d’exploitation. Faites très attention lors de l’utilisation de la classe de priorité élevée, car une application liée à l’UC de classe haute priorité peut utiliser presque tous les cycles disponibles.
IDLE_PRIORITY_CLASS
0x00000040
Processus dont les threads s’exécutent uniquement lorsque le système est inactif et sont préemptés par les threads de tout processus exécuté dans une classe de priorité plus élevée. Un écran de veille est un bon exemple. Les processus enfants héritent de la classe de priorité inactive.
NORMAL_PRIORITY_CLASS
0x00000020
Traiter sans besoin de planification particulière.
REALTIME_PRIORITY_CLASS
0x00000100
Processus ayant la priorité la plus élevée possible. Les threads d’un processus de classe de priorité en temps réel préemptent les threads de tous les autres processus, y compris les processus de système d’exploitation effectuant des tâches importantes. Par exemple, un processus en temps réel qui s’exécute pendant plus d’un intervalle très court peut empêcher le vidage des caches de disque ou empêcher la souris de répondre.

Notes

Chaque thread a un niveau de priorité de base déterminé par la valeur de priorité du thread et la classe de priorité de son processus. Le système d’exploitation utilise le niveau de priorité de base de tous les threads exécutables pour déterminer quel thread obtient la tranche de temps processeur suivante. Les threads sont planifiés de façon par tourniquet (round robin) à chaque niveau de priorité, et ce n’est qu’en l’absence de threads exécutables à un niveau supérieur que la planification des threads à un niveau inférieur a lieu.

Pour obtenir un tableau montrant les niveaux de priorité de base pour chaque combinaison de classe de priorité et de valeur de priorité de thread, consultez Priorités de planification.

La classe De priorité étant gérée par l’exécutif, tous les processus ont une classe de priorité qui peut être interrogée.

Exemples

Pour obtenir un exemple, consultez Prise d’un instantané et Affichage des processus.

Spécifications

   
Client minimal pris en charge Windows XP [applications de bureau | applications UWP]
Serveur minimal pris en charge Windows Server 2003 [applications de bureau | applications UWP]
Plateforme cible Windows
En-tête processthreadsapi.h (inclure Windows.h sur Windows Server 2003, Windows Vista, Windows 7, Windows Server 2008 Windows Server 2008 R2)
Bibliothèque Kernel32.lib
DLL Kernel32.dll

Voir aussi

GetThreadPriority

Fonctions de processus et de thread

Processus

Priorités de planification

SetPriorityClass

SetThreadPriority