Compartir a través de


Información general sobre la operación de espera/reactivación

El mecanismo de reactivación del sistema operativo funciona como se muestra en la ilustración siguiente.

diagrama que ilustra información general sobre el procesamiento de irp-mn-wait-wake.

  1. Mientras el sistema y el dispositivo están en estado de funcionamiento, el propietario de la directiva de energía para un dispositivo determina que su dispositivo debe estar habilitado ("armado") para reactivación. El propietario de la directiva de energía solicita que se envíe un IRP de energía (PoRequestPowerIrp con código menor IRP_MN_WAIT_WAKE) a su PDO para informar a todos los controladores de su pila de dispositivos. En la solicitud, el propietario de la directiva especifica una rutina de devolución de llamada (no igual que una rutina de IoCompletion ).

  2. El administrador de energía, a través del administrador de E/S, envía el IRP a la parte superior de la pila del dispositivo.

  3. Los controladores establecen rutinas de IoCompletion y pasan el IRP hacia abajo hasta que llega al controlador de autobús.

  4. El controlador de autobús habilita la reactivación en el dispositivo físico, si puede, y marca el IRP pendiente. Si es necesario, también solicita un IRP de espera o reactivación para su elemento primario.

  5. En algún momento, llega una señal de reactivación externa.

  6. El conductor del autobús completa el IRP_MN_WAIT_WAKE.

  7. El administrador de E/S llama a rutinas de IoCompletion que se establecieron como controladores que pasaron el IRP a la pila.

  8. El administrador de E/S llama a la rutina de devolución de llamada establecida por el propietario de la directiva cuando solicitó el IRP.

La solicitud IRP_MN_WAIT_WAKE no cambia el estado de alimentación del dispositivo o del sistema. Simplemente habilita la reactivación en el dispositivo para que más adelante, si el dispositivo entra en un estado de suspensión adecuado, una señal externa hará que el dispositivo (y posiblemente el sistema) se despierte.

Cuando llega una señal de reactivación, el comportamiento de los controladores es el mismo tanto si el dispositivo reactiva el sistema como si solo lo hace. Si el dispositivo está habilitado para reactivación y el sistema está en estado de suspensión desde el que el dispositivo puede despertarlo, el dispositivo despertará el sistema. Si el dispositivo está habilitado para reactivación y el sistema está en estado de funcionamiento, solo se despertará el dispositivo.

Dado que los equipos y dispositivos varían en el diseño, especialmente con respecto a los planos de alimentación, los estados de alimentación del dispositivo y del sistema admitidos ,y, por lo tanto, los estados que pueden admitir la espera/reactivación, no son los mismos en todas las configuraciones de hardware. Por lo tanto, cualquier controlador que posea la directiva de energía para su dispositivo y cada controlador de autobús debe prestar atención a las capacidades de la configuración individual en la que se está ejecutando. Para obtener más información, consulte Determinar si un dispositivo puede reactivar el sistema.

Para obtener más información sobre las operaciones de espera/reactivación, consulte Descripción de la ruta de acceso de los IRP de espera/reactivación a través de un árbol de dispositivos e información general sobre la finalización de IRP de espera/reactivación.