Поделиться через


Диспетчер питания Windows Kernel-Mode

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

Диспетчер питания в режиме ядра Windows управляет упорядоченным изменением состояния питания для всех устройств, поддерживающих изменения состояния питания. Это часто делается с помощью сложного стека устройств, управляющих другими устройствами. Каждое управляющее устройство называется узлом и должно иметь драйвер, который может обрабатывать обмен данными о состоянии питания вверх и вниз через стек устройств.

Если вы пишете драйвер, который может повлиять на изменения состояния питания, вы должны иметь возможность обрабатывать следующие типы сведений в коде драйвера:

  • Уровень системной активности.

  • Уровень батареи системы.

  • Текущие запросы на завершение работы, спящий режим или гибернацию.

  • Действия пользователя, такие как нажатие кнопки питания.

  • Параметры панели управления, такие как автоматическое завершение работы на 10 процентов заряда батареи.

Диспетчер питания обрабатывает эти запросы с помощью IRPs. Дополнительные сведения об IRP см. в разделе "Обработка irPs".

Диспетчер питания работает в сочетании с управлением политиками для обработки управления питанием и координации событий питания, а затем создает IRPs управления питанием. Диспетчер питания собирает запросы на изменение состояния питания, определяет порядок, в котором устройства должны изменить своё состояние питания, а затем отправляет соответствующие IRPs, чтобы сообщить соответствующим драйверам внести изменения (что, в свою очередь, может сообщить подустройствам также внести изменения). Диспетчер политик отслеживает действия в системе и интегрирует состояние пользователя, состояние приложения и состояние драйвера устройства в политику питания.

Дополнительные сведения об управлении питанием см. в разделе "Управление питанием" для драйверов Windows.

Диспетчер питания считается подкомпонентом диспетчера ввода-вывода. Дополнительные сведения см. в разделе "Диспетчер ввода-вывода Windows".

Подпрограммы, предоставляющие прямой интерфейс диспетчеру питания, обычно префиксируются с помощью "Po"; например , PoSetPowerState. Список подпрограмм диспетчера питания см. в разделе "Подпрограммы Power Manager".

Windows Driver Frameworks (WDF) предоставляет набор библиотек для упрощения управления питанием. Дополнительные сведения о WDF см. в Kernel-Mode обзоре Driver Framework.