Compartilhar via


Um dispositivo insere um estado de Low-Power

Um dispositivo deixa seu estado de trabalho (D0) e entra em um estado de baixa potência se ocorrer um destes procedimentos:

  • O dispositivo está ocioso (ou seja, não está sendo acessado) e é capaz de entrar em um estado ocioso de baixa potência enquanto o sistema permanece em seu estado de trabalho (S0).

  • O estado de energia do sistema mudou de seu estado de trabalho (S0) para um estado de baixa potência. (Os drivers podem chamar WdfDeviceGetSystemPowerAction para determinar o motivo pelo qual o estado de energia de um sistema está mudando.)

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

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

  2. A estrutura interrompe todas as filas de E/S gerenciadas por energia do driver e chama suas funções de retorno de chamada EvtIoStop (se elas existirem).

  3. Se o driver for o proprietário da política de energia do dispositivo, a estrutura chamará a função de retorno de chamada EvtDeviceArmWakeFromS0, EvtDeviceArmWakeFromSx ou EvtDeviceArmWakeFromSxWithReason .

  4. Se o hardware e o driver derem suporte ao DMA, a estrutura chamará as funções de retorno de chamada EvtDmaEnablerSelfManagedIoStop, EvtDmaEnablerFlush e EvtDmaEnablerDisable do driver (se existirem) para cada canal DMA criado.

  5. A estrutura chama a função de retorno de chamada EvtDeviceD0ExitPreInterruptsDisabled do driver (se existir) e, em seguida, chama a função de retorno de chamada EvtInterruptDisable do driver (se existir) para cada interrupção, para que o driver possa desabilitar interrupções de dispositivo.

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

O motorista do ônibus é o motorista na pilha que é chamado de último. Quando a estrutura chama a função de retorno de chamada EvtDeviceD0Exit do driver de barramento, a função de retorno de chamada define o estado de energia do dispositivo (um dispositivo filho do barramento) como um estado de baixa potência. A estrutura especifica o estado de baixa potência D3, a menos que o proprietário da política de energia tenha especificado um estado de baixa potência diferente.

Observação

O método usado pelo motorista do barramento para definir o estado de energia do dispositivo filho é específico do barramento. Por exemplo, a especificação de gerenciamento de energia do barramento PCI define um PMCSR (controle de gerenciamento de energia/ registro de status) de 16 bits. Os dois bits mais baixos ("PowerState") determinam o estado de energia atual do dispositivo e são usados para definir o dispositivo em um novo estado de energia. Quando o pci.sys PDO recebe IRP_MN_SET_POWER/D3, ele lê o PMCSR, altera os bits do PowerState para 11b (nível de energia D3) e grava de volta o PMCSR.