Функция GetPriorityClass


Функция GetPriorityClass извлекает значение класса приоритета для заданного процесса. Это значение, вместе со значением приоритета каждого потока процесса, обуславливает основной уровень приоритета каждого потока.

Синтаксис

DWORD GetPriorityClass(

HANDLE hProcess // дескриптор процесса

);

Параметры

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

Нет

Замечания по платформе

Не имеется

 

Назад в оглавление
На главную страницу
На оглавление справки

Hosted by uCoz