Функция SetPriorityClass


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

Синтаксис

BOOL SetPriorityClass(

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

DWORD dwPriorityClass // значение класса приоритета

);

Параметры

hProcess

[in] Дескриптор процесса.

Windows NT /2000/XP: дескриптор должен иметь право доступа PROCESS_SET_INFORMATION. Для получения дополнительной информации, см. Защита процесса и права доступа.

dwPriorityClass

[in] Класс приоритета для процесса. Этот параметр может быть одним из нижеследующих значений:

 

Приоритет

Предназначение

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

Процесс, который имеет самый высокий возможный приоритет. Потоки этого процесса выгружают потоки всех других процессов, включая процессы операционной системы, выполняющие важные задачи. Например, процесс реального времени, который работает больше, чем очень краткий промежуток времени, может стать причиной того, что дисковые КЭШи не стану сбрасывать на диск или причиной того, что мышь будет не реагирующей.

Возвращаемые значения

Если функция завершается успешно, величина возвращаемого значения - не ноль.

Если функция завершается с ошибкой, величина возвращаемого значения - ноль. Чтобы получать дополнительные данные об ошибке, вызовите GetLastError.

Замечания

Каждый поток имеет базовый уровень приоритета, обуславливающийся значением приоритета потока и классом приоритета его процесса. Система использует базовый уровень приоритета всех выполняемых потоков, чтобы установить, который поток получает следующий квант процессорного времени. Функция SetThreadPriority дает возможность регулировки базового уровня приоритета потока относительно класса приоритета его процесса. Для получения дополнительной информации, см. Приоритеты в обслуживнии.

Смотри также

Краткий обзор Процессы и потоки, Функции, используемые процессами и потоками, CreateProcess, CreateThread, GetPriorityClass, GetThreadPriority, SetThreadPriority

Размещение и совместимость SetPriorityClass

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