Действия с питанием системы
Когда диспетчер управления питанием отправляет IRP для задания или запроса состояния питания системы, он указывает состояние питания системы вместе с дополнительным параметром, который предоставляет сведения об изменении состояния питания. Этот параметр, передаваемый по адресу Irp-Parameters.Power.ShutdownType>, является перечислителем типа POWER_ACTION. Перечислитель характеризует запрос состояния питания системы, как показано в следующей таблице.
перечислитель POWER_ACTION | Запрошено состояние питания системы |
---|---|
PowerActionNone |
S0 или отсутствие активного IRP питания системы |
PowerActionSleep |
S1, S2 или S3 |
PowerActionHibernate |
S4 |
PowerActionShutdown (только в системах Microsoft Windows 2000 и более поздних версий) |
S5 |
PowerActionShutdownReset |
S5 |
PowerActionShutdownOff |
S5 |
Когда драйвер получает системный запрос или IRP set-power для S5, он может проверка ShutdownType для получения дополнительных сведений о запрошенном завершении работы. Драйвер может использовать эти сведения для оптимизации последовательности завершения работы, когда компьютер сбрасывается, а не отключает питание на неопределенный срок. Драйверы большинства устройств сохраняют питание при сбросе системы. Однако для некоторых устройств, таких как устройство потоковой передачи видео, которое осуществляет прямой доступ к памяти (DMA), драйвер может отключить свое устройство при сбросе системы, тем самым останавливая все текущие ввод-вывод.
Когда владелец политики управления питанием устройства отправляет IRP питания устройства в стек устройств в ответ на системное управление питанием, драйверы могут использовать параметр ShutdownType для получения сведений о текущей системе power IRP. В этом случае значение ShutdownType указывает состояние питания системы, запрошенное в данный момент, или значение PowerActionNone , если системный запрос не является невыполненным. Однако драйверы не должны полагаться на эти сведения, если IRP устройства запрашивает состояние D0.
В Windows 98/Me этот элемент всегда содержит PowerActionNone , когда IRP запрашивает состояние питания устройства.