Administración de la directiva de alimentación de dispositivos
Al igual que el administrador de energía mantiene y administra la directiva de energía para el sistema, un controlador de la pila de dispositivos para cada dispositivo mantiene y administra la directiva de energía para el dispositivo. Este controlador es el propietario de la directiva de energía del dispositivo.
El propietario de la directiva de energía del dispositivo es el controlador que tiene la mayor información sobre el uso del dispositivo y el estado de energía. No es necesario poder establecer físicamente los registros del dispositivo para encender y apagar el dispositivo, pero debe ser capaz de determinar cuándo está en uso el dispositivo, cuándo está inactivo y cuándo debe cambiar el estado de energía.
Normalmente, el controlador de función de un dispositivo es su propietario de la directiva de energía, aunque para algunos dispositivos, otro controlador o componente del sistema podría asumir este rol. Para obtener más información sobre los tipos de controladores implicados en la administración de energía, vea Tipos de controladores WDM.
Algunos controladores actúan como controlador de función para un dispositivo (creando un FDO) y el controlador de bus (creando un PDO) para un dispositivo secundario enumerado. En sus rutinas de distribución para irp de alimentación y PnP, este controlador debe distinguir su control de IRP enviados al FDO y los enviados al PDO.
Por ejemplo, el controlador de un adaptador SCSI puede realizar los roles del controlador de función (creando un FDO) para el propio adaptador y el controlador de bus (creando un PDO) para los discos conectados al adaptador. En su capacidad como propietario de controlador o directiva de funciones para el adaptador SCSI, este controlador recibe IRP del sistema y solicita IRP de dispositivo para el adaptador SCSI. En su capacidad como controlador de bus para los discos, controla y completa los IRP del dispositivo que especifican los PPO de disco que crea. Solo porque el controlador posee la directiva de alimentación de un dispositivo (FDO) no significa que posee la directiva de alimentación para el dispositivo secundario (PDO).
El propietario de la directiva de energía del dispositivo es responsable de lo siguiente:
Para establecer el estado de energía inicial del dispositivo en D0, llame a PoSetPowerState a medida que controla la solicitud de IRP_MN_START_DEVICE del administrador de Plug and Play.
Los dispositivos deben encenderse según sea necesario; por ejemplo, un dispositivo debe encenderse para controlar una solicitud de E/S. El propietario de la directiva de alimentación del dispositivo es responsable de determinar cuándo se necesita su dispositivo, asegurarse de que la alimentación del dispositivo está activada y de establecer el estado de alimentación del dispositivo correcto. El dispositivo típico debe encenderse en el momento en que se ha completado el IRP del dispositivo de inicio de PnP.
Como regla general, la mayoría de los dispositivos deben apagarse cuando no están en uso, incluso cuando el sistema está en estado de trabajo.
Enviar una solicitud de alimentación del dispositivo en respuesta a una solicitud de alimentación del sistema mediante una llamada a PoRequestPowerIrp.
Por ejemplo, cuando el propietario de la directiva recibe un IRP de energía establecida por el sistema, envía un IRP de energía establecida por el dispositivo. La mayoría de los dispositivos entran en D3 cuando el sistema entra en estado de suspensión. La matriz DeviceState de la estructura de DEVICE_CAPABILITIES enumera el estado de mayor potencia que el dispositivo puede mantener para cada estado de alimentación del sistema. (Consulte Reporting Device Power Capabilities).)
Detectar cuándo el dispositivo está inactivo y ponerlo en suspensión para ahorrar energía.
El administrador de energía o el propietario de la directiva de dispositivo pueden detectar un dispositivo inactivo y enviar un IRP de alimentación del dispositivo para cambiar su estado. Para obtener más información, consulte Detección de un dispositivo inactivo.
Devolver su dispositivo al estado de trabajo cuando sea necesario.
Cuando llega una solicitud de E/S para un dispositivo en suspensión, los controladores del dispositivo deben devolverlo al estado de funcionamiento.
Habilitar y deshabilitar la reactivación para su dispositivo cuando se solicite.
El propietario de la directiva de energía del dispositivo envía y cancela irP de espera/reactivación, como se describe en Compatibilidad con dispositivos que tienen Wake-Up funcionalidades.