Compartilhar via


Recursos D3cold de um dispositivo

Antes que o driver, que é o proprietário da política de energia (PPO) de um dispositivo, permita que o dispositivo entre em D3cold (quando o computador deve permanecer em S0), o driver deve garantir que o dispositivo será responsivo e continuará operando corretamente depois de entrar em D3cold.

Para um dispositivo PnP (Plug and Play), o sistema operacional normalmente obtém informações sobre os recursos D3cold do dispositivo do driver de barramento pai.

Por exemplo, se um dispositivo estiver anexado a um barramento PCI ou PCI Express, o espaço de configuração PCI do dispositivo conterá um Bloco de Registro de Gerenciamento de Energia que indica os recursos do dispositivo. Os sinalizadores de funcionalidade nesse bloco especificam os estados de energia do dispositivo dos quais o dispositivo pode sinalizar um evento de gerenciamento de energia ou PME (o termo PCI para um evento de ativação). Esses estados podem incluir D3hot e D3cold. Para obter mais informações sobre o gerenciamento de energia PCI, consulte a Especificação da Interface de Gerenciamento de Energia do Barramento PCI.

Se um dispositivo precisar ser capaz de sinalizar um evento de ativação de qualquer estado Dx de baixa potência em que ele entra, o dispositivo não deverá entrar em D3cold, a menos que o dispositivo, o controlador de barramento pai e a plataforma de hardware suportem a sinalização de um evento de ativação de D3cold.

O driver KMDF de um dispositivo chama o método WdfDeviceAssignS0IdleSettings para permitir que o dispositivo entre em estado ocioso no estado de energia mais baixo do qual o dispositivo pode sinalizar um evento de ativação. A partir da versão 1.11 do KMDF, WdfDeviceAssignS0IdleSettings inclui D3cold no intervalo de possíveis estados Dx de baixa potência. Este método permite que um dispositivo fique ocioso em D3cold somente se o próprio dispositivo, o driver do barramento pai e o firmware do sistema ACPI suportarem a sinalização de eventos de ativação a partir de D3cold.

O driver WDM de um dispositivo deve decidir para qual estado Dx de baixa potência mover o dispositivo para quando o dispositivo estiver ocioso. (Por outro lado, WdfDeviceAssignS0IdleSettings seleciona automaticamente esse estado Dx para que o driver não precise.) Se o dispositivo precisar sinalizar um evento de ativação de qualquer estado Dx de baixa potência que ele insere, o driver poderá chamar a rotina GetIdleWakeInfo para determinar o estado de energia do dispositivo de menor potência do qual o dispositivo pode sinalizar um evento de ativação. Para obter essas informações, GetIdleWakeInfo consulta o driver de barramento subjacente e o firmware do sistema ACPI. Com base nas informações de GetIdleWakeInfo, o driver pode chamar a rotina SetD3ColdSupport para habilitar ou desabilitar as transições do dispositivo para D3cold.

Um dispositivo pode não precisar da capacidade de sinalizar um evento de ativação a partir de D3cold. Pode ser necessário que o dispositivo faça a transição de D3cold para D0 apenas em resposta a ações iniciadas por software. Por exemplo, talvez o driver precise ativar o dispositivo se o driver receber uma solicitação de E/S para o dispositivo. Com poucas exceções, o driver para esse dispositivo pode permitir que o dispositivo entre no modo D3cold. Uma possível exceção é um dispositivo que requer uma grande quantidade de tempo para fazer uma transição de D3cold para D0. Por exemplo, um dispositivo de exibição pode conter uma grande quantidade de memória que precisa ser salva antes que o dispositivo entre em D3cold e seja restaurada após o dispositivo sair de D3cold.

Para obter mais informações sobre o suporte a ACPI para D3cold, consulte Os Requisitos de Firmware para D3cold.