Propriedade do Power Policy 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 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 com UMDF.

Para cada dispositivo, um (e apenas um) dos drivers do dispositivo devem 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 que o barramento do dispositivo reduza 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 estado de trabalho (S0), a estrutura solicita que o driver de barramento restaure seu dispositivo para o estado de trabalho (D0).

O proprietário da política de energia também é responsável por habilitar e desabilitar os seguintes recursos de dispositivo:

  • A capacidade do dispositivo de inserir um estado de baixa potência (em suspensão) quando ele está ocioso e o sistema permanece em seu estado de trabalho (S0)

  • A capacidade do dispositivo de se ativar de um estado de suspensão ao detectar um evento externo

  • A capacidade do dispositivo de ativar todo o sistema de um estado de suspensão do sistema ao detectar um evento externo

Se o dispositivo der suporte a esses recursos ociosos de ativação e de 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 de políticas de energia. O driver de função do modo kernel do dispositivo é o proprietário padrão da política de energia. (Se não houver nenhum driver de função no modo kernel e o motorista do barramento tiver chamado WdfPdoInitAssignRawDevice, o motorista do barramento será 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 de 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 AddReg INF que define o valor WinUsbPowerPolicyOwnershipDisabled no registro. Se esse valor de tamanho REG_DWORD for definido como qualquer número diferente de zero, ele desabilita 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 motorista do ônibus 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 hora de habilitar ou desabilitar a capacidade do dispositivo de se ativar de um estado de baixa potência.

  • Se o driver permitir que os usuários modifiquem as configurações ociosas e de ativação, a estrutura fornece uma interface do usuário na forma de uma página de folha de propriedades que Gerenciador de Dispositivos é exibida.

Para obter mais informações sobre as responsabilidades do proprietário da política de energia, consulte os seguintes tópicos: