Enviando um IRP de Espera/Ativação

O código IRP de energia secundária IRP_MN_WAIT_WAKE fornece para ativar um dispositivo ou ativar o sistema. Drivers de dispositivos que podem ativar a si mesmos ou o sistema enviar IRP_MN_WAIT_WAKE solicitações. O sistema envia IRP_MN_WAIT_WAKE solicitações somente para dispositivos que sempre ativam o sistema, como o comutador ligado.

Um driver envia uma solicitação de IRP_MN_WAIT_WAKE por um dos dois motivos:

  1. Seu dispositivo deve ser capaz de retornar ao estado de trabalho de um estado de suspensão em resposta a um sinal de ativação externo.

    Por exemplo, o driver de um modem pode enviar um IRP de espera/ativação antes de defini-lo no estado de energia D1 para conservar energia. O IRP de espera/ativação permite que o modem responda a uma chamada de entrada.

  2. Seu dispositivo deve ser capaz de ativar o sistema em resposta a um sinal de ativação.

    Quando o sistema entra em suspensão, o modem pode permanecer no estado D1 com um IRP_MN_WAIT_WAKE pendente. Nesse caso, uma chamada de entrada ativaria o sistema, bem como o modem.

Se um dispositivo está preparado para ativar a si mesmo ou o sistema, as ações que seus drivers devem executar são as mesmas. A principal diferença está em como o dispositivo e o hardware do sistema respondem ao sinal de ativação inicial. O comportamento do driver é o mesmo em ambos os casos.