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 |
---|---|
|
Processus qui a la priorité ci-dessus NORMAL_PRIORITY_CLASS mais en dessous de HIGH_PRIORITY_CLASS. |
|
Processus qui a la priorité ci-dessus IDLE_PRIORITY_CLASS mais en dessous de NORMAL_PRIORITY_CLASS. |
|
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. |
|
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. |
|
Traiter sans besoins spéciaux de planification. |
|
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 |