Administración de energía winUSB
WinUSB usa las máquinas de estado KMDF para la administración de energía. Las directivas de energía se administran a través de llamadas a WinUsb_SetPowerPolicy.
Para modificar el comportamiento de energía de WinUSB, la configuración predeterminada del Registro se puede modificar en el INF del dispositivo. Estos valores se deben escribir en la ubicación específica del dispositivo en el Registro agregando los valores en el HW. Sección AddReg del INF.
Los valores del Registro descritos en la lista siguiente se pueden especificar en el INF del dispositivo para modificar el comportamiento de energía.
Reactivación del sistema
Esta característica se controla mediante la configuración del Registro SystemWakeEnabled DWORD. Este valor indica si se debe permitir que el dispositivo active el sistema desde un estado de bajo consumo.
HKR,,SystemWakeEnabled,0x00010001,1
- Un valor de cero o la ausencia de este valor indica que el dispositivo no puede reactivar el sistema.
- Para permitir que un dispositivo active el sistema, establezca SystemWakeEnabled en un valor distinto de cero. Una casilla de la página Propiedades del dispositivo se habilita automáticamente para que el usuario pueda invalidar la configuración.
Nota:
Al cambiar la configuración SystemWakeEnabled no se produce ningún efecto en la suspensión selectiva, este valor del Registro solo pertenece a la suspensión del sistema.
Suspensión selectiva
La suspensión selectiva se puede deshabilitar mediante cualquiera de las configuraciones de varios sistemas o WinUSB. Una única configuración no puede forzar a WinUSB a habilitar la suspensión selectiva.
La siguiente configuración de directiva de energía especificada en el parámetro PolicyType de WinUsb_SetPowerPolicy afecta al comportamiento de la suspensión selectiva:
- AUTO_SUSPEND Cuando se establece en cero, no establece el dispositivo en modo de suspensión selectiva.
- SUSPEND_DELAY Establece el tiempo entre el momento en que el dispositivo se vuelve inactivo y cuando WinUSB solicita al dispositivo que entre en suspensión selectiva.
En la tabla siguiente se muestra cómo afectan las claves del Registro a la característica de suspensión selectiva.
Clave del Registro | Descripción |
---|---|
DeviceIdleEnabled | Se trata de un valor DWORD. Este valor del Registro indica si el dispositivo es capaz de apagarse cuando está inactivo (suspensión selectiva).
HKR,,DeviceIdleEnabled,0x00010001,1 |
DeviceIdleIgnoreWakeEnable | Cuando se establece en un valor distinto de cero, suspende el dispositivo aunque no admita RemoteWake. |
UserSetDeviceIdleEnabled | Este valor es un valor DWORD. Este valor del Registro indica si se debe habilitar una casilla en la página Propiedades del dispositivo que permite a un usuario invalidar los valores predeterminados inactivos. Cuando UserSetDeviceIdleEnabled se establece en un valor distinto de cero, la casilla está habilitada y el usuario puede deshabilitar el apagado del dispositivo cuando está inactivo. Un valor de cero o la ausencia de este valor indica que la casilla no está habilitada.
UserSetDeviceIdleEnabled se omite si DeviceIdleEnabled no está establecido. HKR,,UserSetDeviceIdleEnabled,0x00010001,1 |
DefaultIdleState | Se trata de un valor DWORD. Este valor del Registro establece el valor predeterminado de la configuración de directiva de energía de AUTO_SUSPEND. Esta clave del Registro se usa para habilitar o deshabilitar la suspensión selectiva cuando un identificador no está abierto al dispositivo.
Este valor se omite si deviceIdleEnabled no está establecido. HKR,,DefaultIdleState,0x00010001,1 |
DefaultIdleTimeout | Se trata de un valor DWORD. Este valor del Registro establece el estado predeterminado de la configuración de directiva de energía de SUSPEND_DELAY. El valor indica la cantidad de tiempo en milisegundos que hay que esperar antes de determinar que un dispositivo está inactivo. HKR,,DefaultIdleTimeout,0x00010001,100 |
Detección de inactivos
Todas las escrituras y controles transfieren el dispositivo al estado de alimentación D0 y restablecen el temporizador de inactividad. Las colas del punto de conexión IN no se administran con energía. Las solicitudes de lectura reactivan el dispositivo cuando se envían. Sin embargo, un dispositivo puede estar inactivo mientras una solicitud de lectura espera.
Temas relacionados
- Arquitectura y módulos de WinUSB
- Elección de un modelo de controlador para desarrollar un controlador cliente USB
- Instalación de WinUSB (Winusb.sys)
- Cómo acceder a un dispositivo USB mediante funciones winUSB
- Funciones winUSB para la modificación de la directiva de canalización
- Funciones winUSB
- WinUSB
- WinUsb_GetPowerPolicy
- WinUsb_SetPowerPolicy
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de