Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
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).
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.
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.
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.
Tópicos relacionados
- Arquitetura e módulos WinUSB
- Escolhendo um modelo de driver para desenvolver um driver de cliente USB
- Instalação do WinUSB (Winusb.sys)
- Como acessar um dispositivo USB usando funções WinUSB
- Funções WinUSB para modificação da política de canalização
- Funções do WinUSB
- Introdução ao WinUSB para desenvolvedores
- WinUsb_GetPowerPolicy
- WinUsb_SetPowerPolicy