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


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

Когда диспетчер управления питанием отправляет 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 запрашивает состояние питания устройства.