Estados de energía del dispositivo USB
En este artículo se describen los estados del dispositivo de modelo de controladores de Windows (WDM) que se usarán para los estados de alimentación del dispositivo USB, tal como se especifica en la sección 9.1 de la especificación Bus serie universal 2.0.
Los estados de energía de dispositivos USB (como se especifica en la sección 9.1 de la especificación Bus serie universal 2.0) se pueden agrupar en tres categorías generales:
- Conectado: el dispositivo está conectado, pero no totalmente alimentado.
- Alimentado: el dispositivo está en uno de los estados totalmente alimentados: Predeterminado, Dirección o Configurado.
- Suspendido: el dispositivo está en estado inactivo y funciona con poca energía.
No hay ninguna correlación directa entre los estados de energía del dispositivo definidos en el modelo de energía WDM y los estados de energía del dispositivo definidos en el estándar USB. Por ejemplo, los términos suspendido e inactivo tienen significados específicos en la especificación USB; sin embargo, estos términos a menudo se usan de forma diferente en el modelo de energía WDM. Los controladores de cliente de Windows pueden colocar un dispositivo USB en estado Suspendido. Para obtener más información, consulte Suspensión selectiva de USB. Cuando un controlador cliente está listo para suspender su dispositivo, indica al controlador de autobús que lo inactive. Para obtener una explicación de las solicitudes de inactivación, consulte Suspensión selectiva de USB.
Los estados de energía del dispositivo en el modelo WDM se pueden resumir de la siguiente manera:
- D0: el estado de trabajo. El dispositivo está totalmente alimentado.
- D1/D2: estados intermedios de suspensión. Estos estados permiten que el dispositivo esté armado para la reactivación remota.
- D3: el estado de suspensión más profundo. Los dispositivos con estado D3 no se pueden armar para la reactivación remota.
Para obtener una explicación completa de los estados de energía del dispositivo en el modelo de energía WDM, consulte Estados de energía del dispositivo.
El modelo de energía WDM usa el término armado de dispositivos para la reactivación remota. El armado es una operación de software que normalmente, pero no siempre, conduce a la operación de hardware de habilitar la característica de reactivación remota en un dispositivo USB. La operación de software WDM que arma un dispositivo para la reactivación remota es el IRP de reactivación de espera (IRP_MN_WAIT_WAKE). Para obtener más información sobre este IRP, consulte Compatibilidad con dispositivos que tienen funcionalidades de reactivación.
Para obtener una explicación de la relación entre esta operación de software y la habilitación de la característica de reactivación remota de USB, consulte Reactivación remota de dispositivos USB.
Esta sección contiene las siguientes subsecciones:
- Cambio del estado de energía de un dispositivo no compuesto
- Cambio del estado de energía de un dispositivo compuesto
- Temas relacionados
Cambio del estado de energía de un dispositivo no compuesto
El administrador de directivas de energía para un dispositivo USB es responsable de establecer el estado de alimentación del dispositivo. El administrador de directivas de energía establece el estado de energía mediante la emisión de un IRP de potencia WDM (IRP_MN_SET_POWER). Para obtener más información sobre el administrador de directivas de energía, consulte Propiedad de directiva de energía.
Las acciones realizadas por el controlador de bus dependen del nivel de energía del dispositivo que solicita el administrador de directivas de energía. A continuación se enumeran las acciones que realiza el controlador de bus para cada nivel de solicitud de energía establecida:
D0
El controlador del bus realiza las siguientes tareas:
- Garantiza que todos los concentradores USB ascendentes estén alimentados y listos para recibir solicitudes.
- Reanuda el puerto borrando la característica PORT_SUSPEND, si el puerto USB del dispositivo está suspendido.
- Completa el IRP inactivo del dispositivo con STATUS_SUCCESS, si hay uno pendiente.
- Desarma el dispositivo para la reactivación remota si estaba armado.
D1/D2
El controlador del bus realiza las siguientes tareas:
- Arma el dispositivo para la reactivación remota, si hay un IRP de reactivación de espera (IRP_MN_WAIT_WAKE) pendiente.
- Suspende el puerto USB del dispositivo estableciendo la característica PORT_SUSPEND.
D3
El controlador del bus realiza las siguientes tareas:
- Suspende el puerto USB del dispositivo estableciendo la característica PORT_SUSPEND.
- Completa el IRP de reactivación de espera del dispositivo con STATUS_POWER_STATE_INVALID, si hay uno pendiente.
- Completa el IRP inactivo del dispositivo (IOCTL_INTERNAL_USB_SUBMIT_IDLE_NOTIFICATION) con STATUS_POWER_STATE_INVALID, si hay uno pendiente.
Cambio del estado de energía de un dispositivo compuesto
Un controlador cliente para una interfaz en un dispositivo compuesto debe compartir el estado de energía del dispositivo compuesto con los controladores de cliente para las demás interfaces del dispositivo. Por lo tanto, un controlador cliente para una interfaz no puede colocar el dispositivo compuesto en un estado de energía inferior sin afectar a otras interfaces del dispositivo. El controlador primario genérico USB (Usbccgp.sys) realiza las siguientes acciones cuando el controlador cliente de una interfaz envía una solicitud IRP_MN_SET_POWER.
D0
El controlador del bus realiza las siguientes tareas:
- Garantiza que todos los concentradores USB ascendentes estén alimentados y listos para recibir solicitudes.
- Reanuda el puerto borrando la característica PORT_SUSPEND, si el puerto USB del dispositivo está suspendido.
- Completa el IRP inactivo del controlador cliente con STATUS_SUCCESS, si hay uno pendiente.
D1/D2
El controlador del bus no realiza ninguna acción.
D3
El controlador del bus realiza las siguientes tareas:
- Completa el IRP de reactivación de espera del controlador de cliente (IRP_MN_WAIT_WAKE) con STATUS_POWER_STATE_INVALID, si hay uno pendiente.
- Completa el IRP inactivo del controlador cliente (IOCTL_INTERNAL_USB_SUBMIT_IDLE_NOTIFICATION) con STATUS_POWER_STATE_INVALID, si hay uno pendiente.
El controlador primario genérico suspende el puerto USB para el dispositivo cuando se cumple una de las condiciones siguientes:
- El sistema está pasando a un estado de baja energía.
- Los controladores cliente para todas las funciones del dispositivo compuesto han iniciado la suspensión selectiva.