Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
A partir do Windows Vista, chamar PoStartNextPowerIrp não é necessário e uma chamada para essa rotina não executa nenhuma operação de gerenciamento de energia. No entanto, no Windows Server 2003, Windows XP e Windows 2000, depois que um driver processa um IRP de poder de consulta ou um IRP de potência definida, o driver deve chamar PoStartNextPowerIrp para notificar o gerenciador de energia de que está pronto para receber outro IRP de energia. Os controladores devem chamar PoStartNextPowerIrp enquanto a localização da pilha IRP aponta para o controlador atual e antes de chamar PoCallDriver.
Um controlador deve chamar esta rotina uma vez para cada IRP_MN_QUERY_POWER ou IRP_MN_SET_POWER solicitação que ele receber. Os drivers não precisam chamar PoStartNextPowerIrp ao lidar com solicitações IRP_MN_WAIT_WAKE ou IRP_MN_POWER_SEQUENCE .
Quando um driver chama PoStartNextPowerIrp, o local atual da pilha IRP deve apontar para o driver atual. Como regra geral, essa chamada é melhor feita a partir de uma rotina IoComplete. PoStartNextPowerIrp deve ser chamado antes de IoCompleteRequest, IoSkipCurrentIrpStackLocation e PoCallDriver. Chamar as rotinas na outra ordem pode causar um impasse no sistema.
Mesmo se um driver falhar o IRP, ele deve, no entanto, chamar PoStartNextPowerIrp para informar o gerente de energia que ele está pronto para lidar com outro IRP de energia.
As seções a seguir esclarecem quando cada tipo de driver deve chamar essa rotina:
Chamando PoStartNextPowerIrp de um driver de filtro
Chamando PoStartNextPowerIrp de um proprietário de política de energia de dispositivo