Um dispositivo retorna ao seu estado de trabalho

Um dispositivo que está em um estado de baixa potência retornará ao seu estado de trabalho se ocorrer um dos seguintes:

  • O dispositivo detecta um evento externo e dispara um sinal de ativação em seu barramento. O driver de ônibus que detecta o sinal de ativação chama WdfDeviceIndicateWakeStatus. Como resultado, a estrutura chama a função de retorno de chamada EvtDeviceDisableWakeAtBus do driver de barramento.

  • O dispositivo ficou ocioso e um driver chama WdfDeviceStopIdle.

  • O estado de energia do sistema mudou de um estado de baixa potência para seu estado de trabalho (S0).

Em cada uma dessas situações, a estrutura chama a função de retorno de chamada EvtDeviceD0Entry do driver de barramento, que restaura o dispositivo (um dispositivo filho do barramento) para seu estado de trabalho (D0).

Para cada função e driver de filtro que dá suporte ao dispositivo, a estrutura faz o seguinte, em sequência, um driver por vez, começando com o driver mais baixo na pilha de driver:

  1. A estrutura chama a função de retorno de chamada EvtDeviceD0Entry do driver (se ela existir).

  2. A estrutura chama a função de retorno de chamada EvtInterruptEnable do driver (se existir) para cada interrupção e, em seguida, chama a função de retorno de chamada EvtDeviceD0EntryPostInterruptsEnabled do driver (se existir), para que o driver possa habilitar interrupções do dispositivo.

  3. Se o DMA de suporte de hardware e driver, a estrutura chamará as funções de retorno de chamada EvtDmaEnablerFill, EvtDmaEnablerEnable e EvtDmaEnablerSelfManagedIoStart do driver (se existirem) para cada canal DMA criado.

  4. Se o driver for o proprietário da política de energia do dispositivo, a estrutura chamará sua função de retorno de chamada EvtDeviceDisarmWakeFromS0 ou EvtDeviceDisarmWakeFromSx .

  5. A estrutura chama a função de retorno de chamada EvtChildListScanForChildren do driver (se existir).

  6. A estrutura reinicia todas as filas de E/S gerenciadas por energia do driver e chama suas funções de retorno de chamada EvtIoResume (se necessário).

  7. Se o driver estiver usando E/S autogerenciada, a estrutura chamará a função de retorno de chamada EvtDeviceSelfManagedIoRestart do driver.