Función GetPriorityClass (processthreadsapi.h)
Recupera la clase de prioridad para el proceso especificado. Este valor, junto con el valor de prioridad de cada subproceso del proceso, determina el nivel de prioridad base de cada subproceso.
Sintaxis
DWORD GetPriorityClass(
[in] HANDLE hProcess
);
Parámetros
[in] hProcess
Identificador del proceso.
El identificador debe tener el derecho de acceso PROCESS_QUERY_INFORMATION o PROCESS_QUERY_LIMITED_INFORMATION . Para obtener más información, consulte Derechos de acceso y seguridad de procesos.
Windows Server 2003 y Windows XP: El identificador debe tener el derecho de acceso PROCESS_QUERY_INFORMATION.
Valor devuelto
Si la función se ejecuta correctamente, el valor devuelto es la clase de prioridad del proceso especificado.
Si la función no se realiza correctamente, el valor devuelto es cero. Para obtener información de error extendida, llame a GetLastError.
La clase de prioridad del proceso es uno de los valores siguientes.
Código o valor devuelto | Descripción |
---|---|
|
Proceso que tiene prioridad por encima de NORMAL_PRIORITY_CLASS pero por debajo de HIGH_PRIORITY_CLASS. |
|
Proceso que tiene prioridad por encima de IDLE_PRIORITY_CLASS pero por debajo de NORMAL_PRIORITY_CLASS. |
|
Proceso que realiza tareas críticas para el tiempo que se deben ejecutar inmediatamente para que se ejecuten correctamente. Los subprocesos de un proceso de clase de prioridad alta reemplazan los subprocesos de los procesos de clase de prioridad normal o inactiva. Un ejemplo es la lista de tareas, que debe responder rápidamente cuando lo llame el usuario, independientemente de la carga en el sistema operativo. Use un cuidado extremo al usar la clase de prioridad alta, ya que una aplicación enlazada a CPU de alta prioridad puede usar casi todos los ciclos disponibles. |
|
Proceso cuyos subprocesos se ejecutan solo cuando el sistema está inactivo y los subprocesos de cualquier proceso que se ejecuta en una clase de prioridad más alta. Un ejemplo es un protector de pantalla. La clase de prioridad inactivo se hereda mediante procesos secundarios. |
|
Proceso sin necesidad de programación especial. |
|
Proceso que tiene la prioridad más alta posible. Los subprocesos de un proceso de clase de prioridad en tiempo real reemplazan los subprocesos de todos los demás procesos, incluidos los procesos del sistema operativo que realizan tareas importantes. Por ejemplo, un proceso en tiempo real que se ejecuta durante más de un intervalo muy breve puede hacer que las memorias caché de disco no se vacíen o que el mouse deje de responder. |
Comentarios
Cada subproceso tiene un nivel de prioridad base determinado por el valor de prioridad del subproceso y la clase priority de su proceso. El sistema operativo usa el nivel de prioridad base de todos los subprocesos ejecutables para determinar qué subproceso obtiene el siguiente segmento de tiempo de CPU. Los subprocesos se programan de forma round robin en cada nivel de prioridad y solo cuando no hay subprocesos ejecutables en un nivel superior se programarán subprocesos en un nivel inferior.
Para obtener una tabla que muestre los niveles de prioridad base para cada combinación de la clase de prioridad y el valor de prioridad del subproceso, consulte Programación de prioridades.
El ejecutivo mantiene la clase priority, por lo que todos los procesos tienen una clase de prioridad que se puede consultar.
Ejemplos
Para obtener un ejemplo, vea Tomar una instantánea y ver procesos.
Requisitos
Cliente mínimo compatible | Windows XP [aplicaciones de escritorio | aplicaciones para UWP] |
Servidor mínimo compatible | Windows Server 2003 [aplicaciones de escritorio | aplicaciones para UWP] |
Plataforma de destino | Windows |
Encabezado | processthreadsapi.h (incluya Windows.h en Windows Server 2003, Windows Vista, Windows 7, Windows Server 2008 Windows Server 2008 R2) |
Library | Kernel32.lib |
Archivo DLL | Kernel32.dll |