Partilhar via


Chamada de PoStartNextPowerIrp a partir de um driver de filtro

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 filtro deve chamar PoStartNextPowerIrp uma vez para cada IRP_MN_QUERY_POWER ou IRP_MN_SET_POWER solicitação 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 controlador 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 DispatchPower, depois de adquirir o bloqueio de remoção e antes de definir a posição na pilha IRP.

No DispatchPower rotina, 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 DispatchPower, depois de adquirir o bloqueio de remoção e antes de definir a localização da pilha de IRP.

Não permitido.