Propriedade da política de energia no UMDF
Aviso
O UMDF 2 é a versão mais recente do UMDF e substitui o UMDF 1. Todos os novos drivers UMDF devem ser gravados usando o UMDF 2. Nenhum novo recurso está sendo adicionado ao UMDF 1 e há suporte limitado para UMDF 1 em versões mais recentes do Windows 10. Os drivers universais do Windows devem usar o UMDF 2.
Os exemplos de UMDF 1 arquivados podem ser encontrados no Windows 11, versão 22H2 – Atualização de Exemplos de Driver de maio de 2022.
Para obter mais informações, consulte Introdução ao UMDF.
Para cada dispositivo, um (e apenas um) dos drivers do dispositivo deve ser o proprietário da política de energia do dispositivo. O proprietário da política de energia determina o estado de energia do dispositivo apropriado para um dispositivo e envia solicitações para a pilha de driver do dispositivo sempre que o estado de energia do dispositivo deve ser alterado.
Os drivers baseados em estrutura não contêm código que solicita alterações no estado de energia de um dispositivo, pois a estrutura fornece esse código. Por padrão, sempre que o sistema entra em um estado de suspensão do sistema, a estrutura solicita ao driver o barramento do dispositivo para reduzir o estado de energia do dispositivo para D3. (O driver pode alterar o comportamento padrão para que a estrutura defina o estado de suspensão do dispositivo como D1 ou D2, se o dispositivo fornecer recursos de ativação.) Quando a energia do sistema retorna ao seu estado de trabalho (S0), a estrutura solicita que o driver de barramento restaure seu dispositivo ao seu estado de trabalho (D0).
O proprietário da política de energia também é responsável por habilitar e desabilitar os seguintes recursos do dispositivo:
A capacidade do seu dispositivo de entrar em um estado de baixo consumo de energia (suspensão) quando está ocioso e o sistema permanece em seu estado de funcionamento (S0)
A capacidade do seu dispositivo de acordar de um estado de suspensão quando detecta um evento externo
A capacidade do seu dispositivo de ativar todo o sistema de um estado de suspensão do sistema quando detecta um evento externo
Se o dispositivo der suporte a esses recursos de desligamento ocioso e ativação do sistema, o proprietário da política de energia também poderá dar suporte às interfaces IPowerPolicyCallbackWakeFromS0 e IPowerPolicyCallbackWakeFromSx da estrutura, que definem um conjunto de funções de retorno de chamada de evento de política de energia.
Por padrão, os drivers baseados em UMDF não são proprietários da política de energia. O driver de função do modo kernel do dispositivo é o proprietário da política de energia padrão. (Se não houver nenhum driver de função no modo kernel e o driver de barramento tiver chamado WdfPdoInitAssignRawDevice, o driver de barramento é o proprietário da política de energia). Se você quiser que o driver baseado em UMDF seja o proprietário da política de energia para uma pilha de driver, o driver deverá chamar IWDFDeviceInitialize::SetPowerPolicyOwnership e o proprietário da política de energia padrão do modo kernel deverá chamar WdfDeviceInitSetPowerPolicyOwnership para desabilitar a propriedade.
Além disso, se você estiver fornecendo um driver baseado em UMDF para um dispositivo USB e quiser que o driver seja o proprietário da política de energia, o arquivo INF do driver deverá conter uma diretiva INF AddReg que define o valor WinUsbPowerPolicyOwnershipDisabled no registro. Se esse valor de tamanho REG_DWORD for definido como qualquer número diferente de zero, ele desabilitará a capacidade do driver WinUSB de ser o proprietário da política de energia do dispositivo. A diretiva AddReg deve estar em uma seção INF DDInstall.HW, como mostra o exemplo a seguir.
[MyDriver_Install.NT.hw]
AddReg=MyDriver_AddReg
[MyDriver_AddReg]
HKR,,"WinUsbPowerPolicyOwnershipDisabled",0x00010001,1
A estrutura faz o seguinte trabalho para o proprietário da política de energia:
Ele lida com toda a comunicação de política de energia entre o driver e o restante da pilha de driver. Por exemplo, o driver não precisa solicitar que o driver de barramento altere o estado de energia do dispositivo, pois a estrutura faz a solicitação.
Se o driver registrar funções de retorno de chamada de evento de política de energia, a estrutura as chamará quando for a hora de habilitar ou desabilitar a capacidade do dispositivo de se ativar de um estado de baixa energia.
Se o driver permitir que os usuários modifiquem as configurações ociosas e de ativação, a estrutura fornecerá uma interface do usuário na forma de uma página de folha de propriedades que o Gerenciador de Dispositivos exibe.
Para obter mais informações sobre as responsabilidades do proprietário da política de energia, consulte os seguintes tópicos: