Propiedad de Power Policy
Para cada dispositivo, uno (y solo uno) de los controladores del dispositivo debe ser el propietario de la directiva de energía del dispositivo. El propietario de la directiva de energía determina el estado de energía del dispositivo adecuado para un dispositivo y envía solicitudes a la pila de controladores del dispositivo cada vez que el estado de alimentación del dispositivo debe cambiar.
Los controladores basados en marcos no contienen código que solicita cambios en el estado de energía de un dispositivo, ya que el marco proporciona ese código. De forma predeterminada, cada vez que el sistema entra en estado de suspensión del sistema, el marco pide al controlador que el bus del dispositivo reduzca el estado de alimentación del dispositivo a D3. (El controlador puede cambiar el comportamiento predeterminado para que el marco establezca el estado de suspensión del dispositivo en D1 o D2, si el dispositivo proporciona funcionalidades de reactivación). Cuando la alimentación del sistema vuelve a su estado de funcionamiento (S0), el marco solicita al controlador de bus que restaure el dispositivo a su estado de funcionamiento (D0).
El propietario de la directiva de energía también es responsable de habilitar y deshabilitar las siguientes características del dispositivo:
La capacidad del dispositivo para entrar en un estado de baja potencia (en suspensión) cuando está inactivo y el sistema permanece en estado de funcionamiento (S0)
La capacidad del dispositivo para reactivarse desde un estado de suspensión cuando detecta un evento externo
La capacidad del dispositivo para reactivar todo el sistema desde un estado de suspensión del sistema cuando detecta un evento externo
Si el dispositivo admite estas funcionalidades de apagado inactivo y reactivación del sistema, el propietario de la directiva de energía también puede llamar a WdfDeviceInitSetPowerPolicyEventCallbacks para registrar un conjunto de funciones de devolución de llamada de eventos de directiva de energía.
De forma predeterminada, para los controladores basados en marcos, el controlador de función del dispositivo es el propietario de la directiva de energía. (Si no hay ningún controlador de función y el controlador de autobús ha llamado WdfPdoInitAssignRawDevice, el controlador de autobús es el propietario de la directiva de energía). Si desea cambiar el propietario de la directiva de energía para una pila de controladores, el propietario predeterminado de la directiva de energía debe llamar a WdfDeviceInitSetPowerPolicyOwnership para deshabilitar la propiedad y el controlador que será el propietario de la directiva de energía debe llamar a WdfDeviceInitSetPowerPolicyOwnership para habilitar la propiedad.
El marco realiza el siguiente trabajo para el propietario de la directiva de energía:
Controla toda la comunicación de directiva de energía entre el controlador y el resto de la pila de controladores. Por ejemplo, el controlador no tiene que solicitar al controlador de autobús que cambie el estado de alimentación del dispositivo, ya que el marco realiza la solicitud.
Si el controlador registra las funciones de devolución de llamada de eventos de la directiva de energía, el marco los llama cuando es el momento de habilitar o deshabilitar la capacidad del dispositivo para reactivarse desde un estado de bajo consumo.
Si el controlador permite a los usuarios modificar la configuración de inactividad y reactivación, el marco proporciona una interfaz de usuario en forma de página de hoja de propiedades que Administrador de dispositivos muestra.
Para obtener más información sobre las responsabilidades del propietario de la directiva de energía, consulte los temas siguientes: