Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Alguns dispositivos podem entrar em um estado de baixa potência (Dx) enquanto o sistema permanece em seu estado de trabalho (S0). A partir do Windows 8, os dispositivos podem fazer a transição para um estado de energia funcional (Fx) de baixo consumo de energia antes de entrar em um estado Dx. Para esses dispositivos, a estrutura inicia a redução de potência do dispositivo ou componente depois que o dispositivo ficou ocioso (não usado) por um período de tempo predeterminado (e ajustável).
Alguns desses dispositivos também podem disparar um sinal de acordar no barramento quando detetam um evento externo. O controlador de barramento responde a esse sinal e o stack de controladores restaura o dispositivo ao seu estado de funcionamento. (Os dispositivos que não detetam eventos externos permanecem em um estado de baixo consumo de energia até que o framework peça ao controlador de barramento para iniciar a restauração do dispositivo para seu estado operacional.)
Se o dispositivo ou componente puder ser desligado quando estiver ocioso, a função de retorno de chamada EvtDriverDeviceAdd no proprietário da política de energia deverá executar as duas etapas a seguir:
Chame WdfDeviceAssignS0IdleSettings para especificar:
- O estado de baixo consumo de energia em que o dispositivo entrará
- A quantidade de tempo que o dispositivo deve permanecer inativo antes que seu estado de energia seja reduzido
- Se o dispositivo pode detetar um evento externo e acionar um sinal de despertar no barramento
- Se os usuários podem controlar as configurações ociosas do dispositivo
- Se a capacidade de desligamento em modo inativo do dispositivo está ativada ou desativada
- Se o dispositivo retornará ao seu estado de trabalho (D0) quando o sistema retornar ao seu estado de trabalho (S0)
- Se o valor de tempo limite ocioso para o dispositivo é determinado pela estrutura de gerenciamento de energia (PoFx)
- Se a estrutura pode colocar o dispositivo no estado de energia D3cold quando o tempo limite de inatividade terminar
Para obter mais informações sobre essas configurações, consulte a estrutura de WDF_DEVICE_POWER_POLICY_IDLE_SETTINGS , bem como Suporte a estados de energia funcional.
Ligue WdfDeviceInitSetPowerPolicyEventCallbacks para registar as seguintes funções de retorno de chamada de evento, se necessárias para o seu dispositivo:
- EvtDeviceArmWakeFromS0, que permite que o hardware do dispositivo (não o barramento) responda a um evento de ativação externo
- EvtDeviceDisarmWakeFromS0, que desativa a capacidade do dispositivo (não a capacidade do barramento) de responder a um evento de despertar externo
- EvtDeviceWakeFromS0Triggered, que informa ao motorista que o barramento detetou um sinal de despertar.
Condições de inatividade
A estrutura considera o dispositivo ocioso e começa a contar o tempo ocioso, quando todas as seguintes condições forem atendidas:
- Nenhuma das filas de gerenciamento de energia criadas para esta instância de dispositivo tem solicitações aguardando na fila ou enviadas para o controlador. Se uma solicitação foi enviada para o driver e o driver a enviou para um destino de E/S, a solicitação ainda está relacionada à fila. O dispositivo não será considerado ocioso, a menos que o motorista tenha usado a opção enviar e esquecer para enviar a solicitação. As solicitações em filas não geridas por energia não contam para o estado de inatividade do dispositivo.
- Se o driver tiver chamado anteriormente WdfDeviceStopIdle, o driver chamou em seguida WdfDeviceResumeIdle.
- Se o proprietário da política de energia for um controlador de barramento, nenhum dos dispositivos filhos do controlador de barramento estará em D0.
Se o driver (ou um utilizador) ativar a desativação em inatividade para o seu dispositivo, poderá ser necessário usar o método WdfDeviceStopIdle. Se o dispositivo estiver em seu estado de trabalho (D0), esse método impede que o dispositivo fique ocioso até que o driver chame WdfDeviceResumeIdle. Se o dispositivo estiver em um estado de baixa energia quando o driver chama WdfDeviceStopIdle, e se o sistema estiver em seu estado de trabalho (S0), a estrutura solicita que o driver de barramento restaure o dispositivo para seu estado de trabalho (D0). Cada chamada bem-sucedida para WdfDeviceStopIdle deve ser correspondida por uma chamada para WdfDeviceResumeIdle. Para obter informações sobre como exibir a contagem de referência de energia no depurador, consulte Depurando vazamentos de referência de energia no WDF.
Para obter mais informações sobre quando o driver pode ter que chamar WdfDeviceStopIdle, consulte a página de referência do método.
Se o dispositivo puder acordar-se de um estado de baixo consumo de energia, o driver do barramento do dispositivo participa no processo de despertar o dispositivo. O controlador de barramento normalmente fornece as funções de retorno de chamada EvtDeviceEnableWakeAtBus e EvtDeviceDisableWakeAtBus. Essas funções fazem o que for necessário no adaptador de barramento para ativar e desativar a capacidade de um dispositivo de despertar de um estado de baixo consumo de energia.
Para obter informações sobre entradas do Registro que controlam os recursos ociosos de um dispositivo, consulte Controle de usuário do dispositivo ocioso e comportamento de despertar.