Chamando PoStartNextPowerIrp do proprietário da política de energia do dispositivo
A partir do Windows Vista, chamar PoStartNextPowerIrp não é necessário e chamar para essa rotina não executa nenhuma operação de gerenciamento de energia. No entanto, no Windows Server 2003, Windows XP e Windows 2000, um driver de função que possui a diretiva de energia do dispositivo deve chamar PoStartNextPowerIrp uma vez para cada solicitação IRP_MN_QUERY_POWER ou IRP_MN_SET_POWER que o driver recebe. Quando a chamada ocorre depende do tipo de pedido e se o driver irá falhar ou cumprir a solicitação, como mostra a tabela a seguir.
Tipo de pedido | Se o driver tiver êxito na solicitação, a chamada ocorrerá: | Se o driver falhar na solicitação, a chamada ocorre: |
---|---|---|
IRP_MN_QUERY_POWER (estado de energia do dispositivo) |
Numa rotina IoCompletion, imediatamente antes de retornar. |
Na rotina DispatchPower, antes de chamar IoCompleteRequest. |
IRP_MN_QUERY_POWER (estado de energia do sistema) |
Na rotina de callback PoRequestPowerIrp para o IRP do dispositivo relacionado, imediatamente antes de concluir o IRP do sistema. |
Na rotina DispatchPower, antes de chamar IoCompleteRequest. |
IRP_MN_SET_POWER (estado de energia do dispositivo) |
Numa rotina IoCompletion, imediatamente antes de retornar. |
Não permitido. |
IRP_MN_SET_POWER (estado de energia do sistema) |
Na rotina de retorno de chamada PoRequestPowerIrp para o IRP do dispositivo relacionado, imediatamente antes de concluir o IRP do sistema. |
Não permitido. |