Windows Kernel-Mode Power Manager
Windows использует технологию управления питанием для снижения энергопотребления компьютеров в целом и ноутбуков с питанием от батареи, в частности. Например, компьютер с Windows может быть помещен в спящий режим или в режим гибернации. Сложная система управления питанием для компьютерных устройств развивалась таким образом, что когда компьютер начинает выключаться или переходить к снижению энергопотребления, подключенные устройства также могут быть надлежащим образом выключены, чтобы данные не были потеряны. Но этим устройствам требуется предупреждение о том, что состояние питания изменяется, и они также могут быть частью цикла связи, который сообщает управляющему устройству ждать, пока они не смогут правильно завершить работу.
Диспетчер питания в режиме ядра Windows управляет упорядоченным изменением состояния питания для всех устройств, поддерживающих изменения состояния питания. Это часто делается с помощью сложного стека устройств, управляющих другими устройствами. Каждое управляющее устройство называется узлом и должно иметь драйвер, который может обрабатывать передачу данных об изменениях состояния питания через стек устройств.
Если вы пишете драйвер, на который могут повлиять изменения состояния питания, необходимо иметь возможность обрабатывать следующие типы информации в коде драйвера:
Уровень активности системы.
Уровень заряда батареи системы.
Текущие запросы на завершение работы, спящий режим или гибернации.
Действия пользователя, такие как нажатие кнопки питания.
Параметры панели управления, например автоматическое завершение работы при 10-процентном заряде батареи.
Диспетчер питания обрабатывает эти запросы с помощью IRP. Дополнительные сведения об IRP см. в разделе Обработка IRP.
Диспетчер питания работает в сочетании с управлением политиками для управления питанием и координации событий питания, а затем создает irp управления питанием. Диспетчер питания собирает запросы на изменение состояния питания, решает, в каком порядке устройства должны изменить состояние питания, а затем отправляет соответствующие irp, чтобы сообщить соответствующим драйверам внести изменения (что, в свою очередь, может сообщить подчиненным отделам внести изменения). Диспетчер политик отслеживает действия в системе и интегрирует состояние пользователя, состояние приложения и состояние драйвера устройства в политику питания.
Дополнительные сведения об управлении питанием см. в разделе Управление питанием для драйверов Windows.
Диспетчер питания считается подкомпонентом диспетчера ввода-вывода. Дополнительные сведения см. в разделе Диспетчер ввода-вывода Windows.
Подпрограммы, обеспечивающие прямой интерфейс диспетчера питания, обычно имеют префикс Po; Например, PoSetPowerState. Список процедур диспетчера питания см. в разделе Подпрограммы Power Manager.
Windows Driver Framework (WDF) предоставляет набор библиотек, которые значительно упрощают управление питанием. Дополнительные сведения о WDF см. в статье Обзор платформы драйверов в режиме ядра.