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


Системные действия питания

Когда диспетчер питания отправляет IRP для задания или запроса состояния системы питания, он указывает состояние системы питания. Он также указывает другой параметр, предоставляющий сведения об изменении состояния питания. Этот параметр, переданный в Irp-Parameters.Power.ShutdownType>, является перечислителем типа POWER_ACTION. Перечислитель характеризует запрос состояния системы, как показано в следующей таблице.

перечислитель POWER_ACTION Запрошенное состояние питания системы
PowerActionNone S0 или нет активной системной системы IRP
PowerActionSleep S1, S2 или S3
PowerActionHibernate S4
PowerActionShutdown (Windows 2000 и более поздних версий) S5
PowerActionShutdownReset S5
PowerActionShutdownOff S5

Когда драйвер получает системный запрос или IRP с установленной мощностью для S5, он может проверить ShutdownType Для получения дополнительных сведений о запрошенном завершении работы. Драйвер может использовать эти сведения для оптимизации последовательности завершения работы при сбросе компьютера вместо отключения питания на неопределенный срок. Драйверы большинства устройств сохраняют питание при сбросе системы. Однако для некоторых устройств, таких как устройство потоковой передачи видео, которое выполняет прямой доступ к памяти (DMA), драйвер может выбрать выключение устройства при сбросе системы, останавливая все текущие операции ввода-вывода.

Когда владелец политики питания устройства отправляет устройство power IRP в стек устройств в ответ на системный IRP, драйверы могут использовать параметр ShutdownType для получения сведений о текущей системной power IRP. В этом случае значение ShutdownType указывает текущее запрошенное состояние системы питания или PowerActionNone , если системный запрос не выдается. Драйверы не должны полагаться на эти сведения, если устройство IRP запрашивает состояние D0.

Дополнительные сведения см. в контексте перехода к системе для IRP_MN_SET_POWER.