Compartilhar via


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.