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


Обработка системного Query-Power IRP в драйвере автобуса

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

В Windows 7 и Windows Vista драйвер автобуса устанавливает Irp-IoStatus.Status> в значение STATUS_SUCCESS, если драйвер может изменить указанное состояние питания, или задает состояние сбоя, если драйвер не может.

В Windows Server 2003, Windows XP и Windows 2000 драйвер шины сначала вызывает PoStartNextPowerIrp, а затем задает Irp-IoStatus.Status> значение STATUS_SUCCESS, если драйвер может измениться на указанное состояние питания, или задает состояние сбоя, если драйвер не может.

После того как водитель автобуса завершит IRP, диспетчер управления питанием вызывает подпрограммы IoCompletion , заданные другими водителями при передаче IRP вниз по стеку.