GetPriorityClass, fonction (processthreadsapi.h)

Récupère la classe de priorité du 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 vers le processus.

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

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 qui a la priorité ci-dessus NORMAL_PRIORITY_CLASS mais en dessous de HIGH_PRIORITY_CLASS.
BELOW_NORMAL_PRIORITY_CLASS
0x00004000
Processus qui a la priorité ci-dessus IDLE_PRIORITY_CLASS mais en dessous de NORMAL_PRIORITY_CLASS.
HIGH_PRIORITY_CLASS
0x00000080
Processus qui effectue des tâches critiques temporelles qui doivent être exécutées immédiatement pour qu’elle s’exécute correctement. Les threads d’un processus de classe à priorité élevée préemptent les threads des processus normaux ou inactifs de classes de priorité. 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. Utilisez des soins extrêmes 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 d’un processus s’exécutant dans une classe de priorité supérieure. Un exemple est un économiseur d’écran. La classe de priorité inactive est héritée par les processus enfants.
NORMAL_PRIORITY_CLASS
0x00000020
Traiter sans besoins spéciaux de planification.
REALTIME_PRIORITY_CLASS
0x00000100
Processus qui a 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 du 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 entraîner la non-réponse des caches de disque ou l’annulation de la réponse de la souris.

Remarques

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 le thread qui obtient la prochaine tranche de temps processeur. Les threads sont planifiés de manière tourniquet à chaque niveau de priorité, et uniquement lorsqu’il n’y a pas de threads exécutables à un niveau supérieur, la planification des threads au niveau inférieur est effectuée.

Pour obtenir un tableau montrant les niveaux de priorité de base pour chaque combinaison de classes de priorité et de valeur de priorité de thread, consultez Planification des priorités.

La classe de priorité est conservée par l’exécutif, de sorte que 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.

Configuration requise

   
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

Planification des priorités

SetPriorityClass

SetThreadPriority