Compartir a través de


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).
  • Un valor de cero o la ausencia de este valor indica que el dispositivo no admite apagarse cuando está inactivo.
  • Un valor distinto de cero indica que el dispositivo admite apagarse cuando está inactivo.
  • Si no se establece DeviceIdleEnabled, se omite el valor de la configuración de directiva de energía de AUTO_SUSPEND.

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.
  • Si el usuario deshabilita el ahorro de energía del dispositivo, se omite el valor de la configuración de directiva de energía de AUTO_SUSPEND.
  • Si el usuario habilita el ahorro de energía del dispositivo, se usa el valor de AUTO_SUSPEND para determinar si se suspende el dispositivo cuando está inactivo.

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.
  • Un valor de cero o la ausencia de este valor indica que, de forma predeterminada, el dispositivo no se suspende cuando está inactivo. El dispositivo puede suspenderse cuando está inactivo solo cuando la directiva de energía de AUTO_SUSPEND está habilitada.
  • Un valor distinto de cero indica que, de forma predeterminada, el dispositivo se puede suspender cuando está inactivo.

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.