Dispositivo de relatório ativado quando o sistema retorna para S0

[Aplica-se somente ao KMDF]

Quando o sistema retorna ao estado de trabalho (S0) de um estado de baixa potência, o gerenciador de PnP envia um IRP (IRP_MN_SET_POWER) de energia do sistema para retornar o dispositivo ao estado de trabalho (D0). O WDF manipula o IRP de set-power do sistema. No entanto, como no cenário de vários componentes o driver se registrou diretamente com a PoFx (estrutura de gerenciamento de energia), o driver deve chamar PoFxReportDevicePoweredOn quando o dispositivo tiver concluído a transição para seu estado de energia totalmente ativado (D0). O driver pode fazer isso registrando uma rotina de pré-processamento do WDM para receber notificação quando um IRP de set-power do sistema chega.

O driver pode usar o seguinte procedimento:

  1. Chame WdfDeviceInitAssignWdmIrpPreprocessCallback para registrar uma função de retorno de chamada EvtDeviceWdmIrpPreprocess para IRP_MN_SET_POWER. No retorno de chamada, o driver define um sinalizador em sua extensão de dispositivo para indicar que ele precisa chamar PoFxReportDevicePoweredOn de seu próximo retorno de chamada EvtDeviceD0Entry .
  2. Em EvtDeviceD0Entry, se o sinalizador estiver definido, o driver limpará o sinalizador e chamará PoFxReportDevicePoweredOn.
  3. O driver também verifica o sinalizador em EvtDeviceSelfManagedIoFlush. Se o sinalizador estiver definido, o dispositivo não retornará a D0 e o dispositivo será removido. Nesse caso, o driver chama PoFxReportDevicePoweredOn e cancela o registro com a estrutura de energia.