Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
A rotina de retorno de chamada SetD3ColdSupport habilita ou desabilita transições para o estado de energia do dispositivo D3cold.
Sintaxe
SET_D3COLD_SUPPORT SetD3coldSupport;
void SetD3coldSupport(
[in, optional] PVOID Context,
[in] BOOLEAN D3ColdSupport
)
{...}
Parâmetros
[in, optional] Context
Um ponteiro para informações de contexto específicas da interface. O chamador define esse parâmetro como o valor do Context membro da estrutura D3COLD_SUPPORT_INTERFACE para a interface.
[in] D3ColdSupport
Se deseja permitir transições de D3hot para D3cold. Defina como TRUE para habilitar essas transições. Caso contrário, defina como FALSE. Para obter mais informações, consulte Comentários.
Valor de retorno
Nenhum
Observações
O driver que é o PPO (proprietário da política de energia) de um dispositivo pode chamar essa rotina para habilitar ou desabilitar transições para o subestado D3cold que pode ocorrer quando o computador está no estado de energia do sistema S0 (funcionando) e não está se preparando para sair do S0.
Se um dispositivo precisar ser capaz de sinalizar um evento de ativação de qualquer estado Dx de baixa potência que ele insere, o driver deste dispositivo não deverá habilitar transições para o subestado D3cold, a menos que o dispositivo possa sinalizar um evento de ativação desse subestado. Caso contrário, depois de entrar em D3cold, o dispositivo ficará indisponível até que o computador reinicie ou acorde de um estado de suspensão.
O driver do dispositivo pode chamar a rotina GetIdleWakeInfo para determinar se o dispositivo pode sinalizar um evento de ativação de D3cold.
Se necessário, o driver de um dispositivo pode fazer uma série de chamadas SetD3ColdSupport para habilitar e desabilitar alternadamente transições D3cold em resposta a condições de alteração dinâmica.
Por exemplo, um dispositivo gráfico pode ter um contexto de hardware grande para restaurar após uma transição de D3cold para D0. O tempo necessário para restaurar esse contexto pode ou não ser aceitável dependendo do conjunto de tarefas que o usuário está executando no momento. Além disso, o tempo de restauração pode variar com essa combinação de tarefas. O driver pode precisar habilitar e desabilitar dinamicamente as transições para D3cold conforme a combinação de tarefas é alterada.
Um dispositivo pode inserir o subestado D3cold somente do subestado D3hot. Se o driver chamar SetD3ColdSupport para habilitar transições de D3hot para D3cold, o dispositivo poderá ou não inserir D3cold depois de entrar em D3hot. Em resposta a um evento de ativação, um dispositivo pode inserir D0 diretamente do D3hot sem passar por D3cold.
Quando um dispositivo passa de D3hot para D3cold, ele provavelmente faz isso porque a fonte de energia que ele compartilha com alguns outros dispositivos foi desativada. Algum tempo depois que esses dispositivos entrarem em D3cold, o driver de um dos dispositivos poderá solicitar uma transição para D0. Em resposta a essa solicitação, o driver de barramento pai ou o driver de filtro ACPI ativa a fonte de energia e todos os dispositivos que compartilham a fonte de energia inserem seus estados padrão de alimentação.
O único driver de dispositivo que espera essa alteração de estado de energia é o driver que solicitou a alteração. Os drivers dos outros dispositivos devem receber notificação dessa alteração para que possam inicializar corretamente seus dispositivos para operar em D0. Somente um driver que pode receber essa notificação deve permitir que seu dispositivo insira D3cold. Caso contrário, o driver não saberá quando o dispositivo entrar em D0.
A partir do Windows 8, um driver WDM pode registrar seu dispositivo com a PoFx (estrutura de energia) e ser notificado pela rotina de devicePowerRequiredCallback quando o dispositivo entra em D0. Da mesma forma, um driver KMDF pode registrar seu dispositivo com PoFx e ser notificado pelo EvtDeviceD0Entry retorno de chamada de evento.
Um driver que não registra seu dispositivo com PoFx ainda pode ser notificado de uma transição para D0 se o dispositivo estiver armado para ativação. Quando os motoristas de ônibus ligam a energia para o dispositivo, eles completam a solicitação de IRP_MN_WAIT_WAKE do motorista. Em resposta, o driver inicializa seu dispositivo para operar em D0.
Depois que uma fonte de energia compartilhada por vários dispositivos é ativada, o dispositivo cujo driver solicitou a transição para D0 pode ser o único desses dispositivos que tem trabalho a fazer. É provável que os outros dispositivos fiquem ociosos, caso em que seus drivers, após algum tempo, moverão esses dispositivos para D3hot.
Se o driver chamar SetD3ColdSupport para desabilitar transições para D3cold, D0 será o único estado de energia do dispositivo que o dispositivo pode inserir a partir do D3hot.
Se o driver chamar SetD3ColdSupport para habilitar transições para D3cold, essas transições poderão ser desabilitadas por outros motivos. O driver pode chamar a rotina GetD3ColdCapability para determinar se o dispositivo é capaz de entrar no subestado D3cold. No entanto, um driver pode não precisar dessas informações. Se um dispositivo não for capaz de inserir D3cold, as chamadas para SetD3ColdSupport não terão efeito, mas serão inofensivas.
A rotina de SetD3ColdSupport afeta apenas as transições D3hot-to-D3cold que podem ocorrer quando o computador está no estado S0 (e não está se preparando para sair). Essa rotina não tem efeito sobre o caso em que o computador está se preparando para sair do S0 e entrar em um estado de sistema de baixa potência. Um dispositivo no subestado D3hot sempre pode inserir o subestado D3cold pouco antes de o computador entrar em um estado de baixa potência do sistema.
Por padrão, antes da primeira chamada para o rotina de SetD3ColdSupport, as transições D3hot-to-D3cold são desabilitadas. Para alterar esse padrão para que as transições D3hot para D3cold sejam habilitadas antes da primeira chamada SetD3ColdSupport, o pacote de driver do dispositivo pode incluir as duas linhas a seguir na seção DDInstall.HW do do arquivo INF que instala o driver:
Include = machine.inf
Needs = PciD3ColdSupported
O Windows 8 é a primeira versão do Windows a dar suporte a dispositivos que podem entrar e sair do subestado D3cold enquanto o computador permanece no estado S0. Para obter mais informações, consulte Low-Power States.
Requisitos
Requisito | Valor |
---|---|
de cliente com suporte mínimo | Disponível a partir do Windows 8. |
da Plataforma de Destino | Área de trabalho |
cabeçalho | wdm.h (inclua Wdm.h) |
IRQL | PASSIVE_LEVEL |