Функция
GetPriorityClassФункция
GetPriorityClass извлекает значение класса приоритета для заданного процесса. Это значение, вместе со значением приоритета каждого потока процесса, обуславливает основной уровень приоритета каждого потока.Синтаксис
GetPriorityClass(
); |
Параметры
hProcess
[in] Дескриптор процесса.
Windows NT/2000/XP:
дескриптор должен иметь права доступа PROCESS_QUERY_INFORMATION. Для получения дополнительной информации, см. статью Защита процесса и права доступа.Возвращаемые значения
Если функция завершается успешно, величина возвращаемого значения - класс приоритета заданного процесса.
Если функция завершается с ошибкой, величина возвращаемого значения - ноль. Чтобы получать дополнительные данные об ошибках, вызовите
GetLastError.Классом приоритета процесса является одно из нижеследующих значений:
Приоритет |
Предназначение |
ABOVE_NORMAL_PRIORITY_CLASS |
Windows 2000 /XP: Процесс, который имеет приоритет выше NORMAL_PRIORITY_CLASS, но ниже HIGH_PRIORITY_CLASS. |
BELOW_NORMAL_PRIORITY_CLASS |
Windows 2000 /XP: Процесс, который имеет приоритет выше IDLE_PRIORITY_CLASS, но ниже NORMAL_PRIORITY_CLASS. |
HIGH_PRIORITY_CLASS |
Обозначает процесс, выполняющий критические по времени задачи, которые должны быть выполнены немедленно для того, чтобы запустить их правильно. Потоки процесса высокоприоритетного класса выгружают потоки процессов нормального класса или класса приоритета в бездействующей системе. Пример - Список задач Windows, который должен быстро отреагировать, когда вызывается пользователем, независимо от загрузки на операционной системе. Высокоприоритетный класс используйте крайне осторожно, потому что программа высокоприоритетного класса, ограниченная возможностями процессора, может использовать почти все циклы доступа к нему. |
IDLE_PRIORITY_CLASS |
Обозначает процесс, потоки которого запускаются только тогда, когда система неактивна и выгружается потоками любого процесса, запущенного с более высоким классом приоритета. Пример - программа-заставка (хранитель экрана). Класс приоритета в бездействующей системе наследуется дочерними процессами. |
NORMAL_PRIORITY_CLASS |
Обозначает нормальный процесс, который не нуждается в специальных мерах диспетчеризации. |
REALTIME_PRIORITY_CLASS |
Обозначает процесс, который имеет самый высокий возможный приоритет. Потоки процесса класса приоритета исполнения в реальном времени выгружают потоки всех других процессов, включая процессы операционной системы, выполняющие важные задачи. Например, процесс реального времени, который работает больше, чем очень краткий промежуток времени, может стать причиной того, что дисковые КЭШи не станут сбрасывать на диск или причиной того, что мышь будет не реагирующей. |
Замечания
Каждому потоку основной уровень приоритета обуславливается значением приоритета потока и классом приоритета его процесса. Операционная система использует основной уровень приоритета всех исполняемых потоков, чтобы регулировать, который поток получит следующий
квант (slice) времени ЦПУ. Потоки устанавливаются в очередь обслуживания циклическим способом в каждом уровне приоритета, и только тогда, когда нет никаких исполняемых потоков более высокого уровня, происходит диспетчеризация потоков более низкого уровня.За таблицей, которая показывает основные уровни приоритета для каждой комбинации класса приоритета и значения приоритета потока, обратитесь к функции
SetPriorityClass.Windows NT 4.0 и ранее:
Класс приоритета сохраняется подсистемой Windows (csrss), так что, только базирующееся на Windows приложение, имеющее класс приоритета, может сделать запрос.Windows 2000 /XP:
Класс приоритета сохраняется операционной системой, так что все процессы имеют класс приоритета и могут делать запрос.Пример см. в статье
Захват снимка мгновенного состояния и просмотр процессов.Смотри также
Краткий обзор Процессы и потоки, Функции, используемые процессами и потоками, GetThreadPriority, SetPriorityClass, SetThreadPriority
Размещение и совместимость GetPriorityClass |
|
Windows. NET Server |
Да |
Windows XP |
Да |
Windows 2000 |
Да |
Windows NT |
Да |
Windows Me |
Да |
Windows 98 |
Да |
Windows 95 |
Да |
Используемая библиотека |
Kernel32.lib |
Заголовочный файл |
|
- объявлено в |
Winbase.h |
- включено в |
Windows.h |
Unicode |
Нет |
Замечания по платформе |
Не имеется |