Partilhar 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 registo, adicionando os valores na secção 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.

Sistema de despertar

Esse recurso é controlado pelo parâmetro DWORD do registo SystemWakeEnabled. Este valor indica se o dispositivo deve ter permissão para despertar 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 despertar o sistema.
  • Para permitir que um dispositivo acorde 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 desativada por várias configurações do sistema ou do WinUSB. Uma única configuração não pode forçar o WinUSB a ativar 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, não define o dispositivo para o modo de suspensão seletiva.
  • SUSPEND_DELAY Define o tempo entre quando o dispositivo fica ocioso e quando 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 de registo Descrição
DeviceIdleEnabled Este é um valor DWORD. Esse valor do Registro indica se o dispositivo pode ser desligado quando ocioso (Suspensão seletiva).
  • Um valor zero ou a ausência desse valor indica que o dispositivo não suporta ser desligado quando ocioso.
  • Um valor diferente de zero indica que o dispositivo suporta 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 suporte RemoteWake.
UserSetDeviceIdleEnabled Este valor é um valor DWORD. Esse valor do registo indica se uma caixa de seleção deve ser ativada na página Propriedades do dispositivo que permite que um utilizador substitua os valores predefinidos de inatividade. Quando UserSetDeviceIdleEnabled é definido como um valor diferente de zero, a caixa de seleção é habilitada e o usuário pode desativar a desativação 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 desativar a economia de energia do dispositivo, o valor da configuração de política de energia AUTO_SUSPEND será ignorado.
  • Se o usuário permitir 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 Este é 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 registo é utilizada para ativar ou desativar a suspensão seletiva quando uma handle não está aberta 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 ativada.
  • 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
Tempo de Inatividade Padrão Este é um valor DWORD. Esse valor do Registro define o estado padrão da configuração de política de energia SUSPEND_DELAY.

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

HKR,,DefaultIdleTimeout,0x00010001,100

Deteção de inatividade

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