Reactivación remota de dispositivos USB
Se dice que los dispositivos USB que pueden responder a señales de reactivación externas mientras están suspendidos tienen una funcionalidad de reactivación remota . Algunos ejemplos de dispositivos que tienen una funcionalidad de reactivación remota son ratones, teclados, concentradores USB, módems (reactivación en anillo), NIC, reactivación en la inserción de cables. Todos estos dispositivos son capaces de producir señalización de reactivación remota. Los dispositivos que no son capaces de generar señales de reactivación remota incluyen cámaras de vídeo, dispositivos de almacenamiento masivo, dispositivos de audio e impresoras.
Los controladores para dispositivos que admiten la señalización de reactivación remota deben emitir un IRP de IRP_MN_WAIT_WAKE , también conocido como IRP de reactivación de espera, para armar el dispositivo para reactivación remota. El mecanismo de reactivación de espera se describe en la sección Compatibilidad con dispositivos que tienen Wake-Up funcionalidades.
En la terminología de USB, se habilita un dispositivo USB para la reactivación remota cuando se establece su característica de DEVICE_REMOTE_WAKEUP. La especificación USB especifica que el software host debe establecer la característica de reactivación remota en un dispositivo "solo antes" para poner el dispositivo en suspensión.
Por este motivo, la pila USB no establece la característica de DEVICE_REMOTE_WAKEUP en un dispositivo después de recibir un IRP de reactivación de espera para el dispositivo. En su lugar, espera hasta que recibe una solicitud de IRP_MN_SET_POWER para cambiar el estado del dispositivo WDM del dispositivo a D1/D2. En la mayoría de las circunstancias, cuando la pila USB recibe esta solicitud, establece la característica de reactivación remota en el dispositivo y coloca el dispositivo en suspensión suspendiendo el puerto ascendente del dispositivo. Al diseñar y depurar el controlador, debe tener en cuenta que hay una relación flexible entre el brazo de un dispositivo USB para reactivar en software, mediante un IRP de reactivación de espera y arming el dispositivo para reactivar en hardware mediante la configuración de la característica de reactivación remota.
La pila USB no habilita el dispositivo para reactivación remota cuando recibe una solicitud para cambiar el dispositivo a un estado de suspensión de D3, ya que de acuerdo con el modelo de energía WDM, los dispositivos de D3 no pueden reactivar el sistema.
Otro aspecto único de la implementación USB del modo de alimentación WDM se refiere al brazo de los concentradores USB para reactivación remota. Si un dispositivo de hoja USB del bus está armado para reactivación, la pila USB también armá el controlador de host USB para reactivación, pero no necesariamente armá ninguno de los concentradores USB ascendentes del dispositivo. El controlador del concentrador USB arma un concentrador para reactivación remota solo si la pila USB está configurada para reactivar el sistema en los eventos de conexión y desasociación (plug/unplug).
Los controladores de host USB de interfaz de controlador de host universal (UHCI) no distinguen entre la señalización de reactivación remota y los eventos de cambio de conexión en los puertos del concentrador raíz. Esto significa que el sistema siempre se reactivará desde un estado de baja potencia del sistema cuando un dispositivo USB esté conectado o desconectado de un puerto de concentrador raíz si hay al menos un dispositivo detrás del controlador UHCI que está armado para reactivación.