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.
O mecanismo de ativação do sistema operacional funciona como mostrado na figura a seguir.
Enquanto o sistema e o dispositivo estiverem no estado de funcionamento, o proprietário da política de energia de um dispositivo determina que o dispositivo deve ser ativado ("armado") para ativação. O proprietário da política de energia solicita que um IRP de energia (PoRequestPowerIrp com código menor IRP_MN_WAIT_WAKE) seja enviado ao seu DOP para informar todos os drivers em sua pilha de dispositivos. Na solicitação, o proprietário da política especifica uma rotina de retorno de chamada (não sendo a mesma que uma rotina IoCompletion).
O gerenciador de energia, através do gerenciador de E/S, envia o IRP para a parte superior da pilha de dispositivos.
Os motoristas definem as rotinas do IoCompletion e passam o IRP para baixo até chegar ao motorista do ônibus.
O motorista do ônibus permite o despertar no dispositivo físico, se puder, e marca o IRP pendente. Se necessário, ele também solicita um IRP de espera/despertar para seu pai.
Algum tempo depois, um sinal de despertar externo chega.
O motorista do ônibus completa a IRP_MN_WAIT_WAKE.
O gerente de E/S chama rotinas IoCompletion que foram definidas quando os drivers passaram o IRP para baixo da pilha.
O gestor de E/S chama a rotina de retorno de chamada definida pelo proprietário da política quando este solicita o IRP.
A solicitação de IRP_MN_WAIT_WAKE não altera o estado de energia do dispositivo ou do sistema. Ele apenas permite o despertar no dispositivo para que, mais tarde, se o dispositivo entrar em um estado de suspensão apropriado, um sinal externo fará com que o dispositivo (e possivelmente o sistema) desperte.
Quando chega um sinal de despertar, o comportamento do condutor é o mesmo, quer o dispositivo acorde o sistema ou apenas ele próprio. Se o dispositivo estiver ativado para despertar e o sistema estiver em um estado de suspensão a partir do qual o dispositivo pode despertá-lo, o dispositivo despertará o sistema. Se o dispositivo estiver ativado para despertar e o sistema estiver no estado de funcionamento, apenas o dispositivo será ativado.
Como os computadores e dispositivos variam em design, particularmente no que diz respeito aos planos de alimentação, os estados de energia do sistema e do dispositivo suportados - e, portanto, os estados que podem suportar espera/despertar - não são os mesmos em todas as configurações de hardware. Portanto, qualquer controlador que possua uma política de energia para o seu dispositivo e cada controlador de barramento devem prestar muita atenção aos recursos da configuração individual na qual eles estão a ser executados. Para obter mais informações, consulte Determinando se um dispositivo pode despertar o sistema.
Para obter mais detalhes sobre operações de espera/despertar, consulte Compreendendo o caminho de IRPs de espera/despertar por meio de uma árvore de dispositivos e Visão geral da conclusão de IRP de espera/despertar.