Compartilhar via


Gerenciamento de energia WinUSB

O WinUSB usa as máquinas de estado KMDF para gerenciamento de energia. As políticas de energia são gerenciadas por meio de chamadas para WinUsb_SetPowerPolicy.

Para modificar o comportamento de energia do WinUSB, as configurações padrão do Registro podem ser modificadas no INF do dispositivo. Esses valores devem ser gravados no local específico do dispositivo no registro adicionando os valores no HW. AddReg do INF.

Os valores do Registro descritos na lista a seguir podem ser especificados no INF do dispositivo para modificar o comportamento de energia.

Ativação do sistema

Esse recurso é controlado pela configuração do Registro DWORD SystemWakeEnabled . Esse valor indica se o dispositivo deve ter permissão para ativar o sistema de um estado de baixa energia.

HKR,,SystemWakeEnabled,0x00010001,1
  • Um valor zero ou a ausência desse valor indica que o dispositivo não tem permissão para ativar o sistema.
  • Para permitir que um dispositivo ative o sistema, defina SystemWakeEnabled como um valor diferente de zero. Uma caixa de seleção na página Propriedades do dispositivo é ativada automaticamente para que o usuário possa substituir a configuração.

Observação

Alterar a configuração SystemWakeEnabled não tem efeito na suspensão seletiva, esse valor do Registro pertence apenas à suspensão do sistema.

Suspensão seletiva

A suspensão seletiva pode ser desabilitada por qualquer uma das várias configurações do sistema ou do WinUSB. Uma única configuração não pode forçar o WinUSB a habilitar a suspensão seletiva.

As seguintes configurações de política de energia especificadas no parâmetro PolicyType do WinUsb_SetPowerPolicy afetam o comportamento da suspensão seletiva:

  • AUTO_SUSPEND Quando definido como zero, ele não define o dispositivo para o modo de suspensão seletiva.
  • SUSPEND_DELAY Define o tempo entre o momento em que o dispositivo fica ocioso e o momento em que o WinUSB solicita que o dispositivo entre em suspensão seletiva.

A tabela a seguir mostra como as chaves do Registro afetam o recurso de suspensão seletiva.

Chave do Registro Descrição
DeviceIdleEnabled Esse é um valor DWORD. Esse valor do Registro indica se o dispositivo pode ser desligado quando ocioso (Suspensão Seletiva).
  • Um valor de zero ou a ausência desse valor indica que o dispositivo não dá suporte a ser desligado quando ocioso.
  • Um valor diferente de zero indica que o dispositivo dá suporte a ser desligado quando ocioso.
  • Se DeviceIdleEnabled não estiver definido, o valor da configuração de política de energia AUTO_SUSPEND será ignorado.

HKR,,DeviceIdleEnabled,0x00010001,1
DeviceIdleIgnoreWakeEnable Quando definido como um valor diferente de zero, ele suspende o dispositivo mesmo que ele não dê suporte a RemoteWake.
UserSetDeviceIdleEnabled Esse valor é um valor DWORD. Esse valor do Registro indica se uma caixa de seleção deve ser habilitada na página Propriedades do dispositivo que permite que um usuário substitua os padrões ociosos. Quando UserSetDeviceIdleEnabled é definido como um valor diferente de zero, a caixa de seleção é habilitada e o usuário pode desabilitar o desligamento do dispositivo quando ocioso. Um valor zero ou a ausência desse valor indica que a caixa de seleção não está habilitada.
  • Se o usuário desabilitar a economia de energia do dispositivo, o valor da configuração da política de energia AUTO_SUSPEND será ignorado.
  • Se o usuário habilitar a economia de energia do dispositivo, o valor de AUTO_SUSPEND será usado para determinar se o dispositivo deve ser suspenso quando ocioso.

O UserSetDeviceIdleEnabled será ignorado se DeviceIdleEnabled não estiver definido.

HKR,,UserSetDeviceIdleEnabled,0x00010001,1
DefaultIdleState Esse é um valor DWORD. Esse valor do Registro define o valor padrão da configuração de política de energia AUTO_SUSPEND. Essa chave do Registro é usada para habilitar ou desabilitar a suspensão seletiva quando um identificador não está aberto para o dispositivo.
  • Um valor zero ou a ausência desse valor indica que, por padrão, o dispositivo não é suspenso quando ocioso. O dispositivo pode ser suspenso quando ocioso somente quando a política de energia AUTO_SUSPEND estiver habilitada.
  • Um valor diferente de zero indica que, por padrão, o dispositivo pode ser suspenso quando ocioso.

Esse valor será ignorado se DeviceIdleEnabled não estiver definido.

HKR,,DefaultIdleState,0x00010001,1
DefaultIdleTimeout Esse é um valor DWORD. Esse valor do Registro define o estado padrão da configuração da política de energia SUSPEND_DELAY.

O valor indica a quantidade de tempo em milissegundos para aguardar antes de determinar que um dispositivo está ocioso.

HKR,,DefaultIdleTimeout,0x00010001,100

Detectando ocioso

Todas as gravações e transferências de controle forçam o dispositivo para o estado de energia D0 e redefinem o temporizador ocioso. As filas de ponto de extremidade IN não são gerenciadas por energia. As solicitações de leitura ativam o dispositivo quando são enviadas. No entanto, um dispositivo pode ficar ocioso enquanto uma solicitação de leitura aguarda.