Compatibilidad con dispositivos Multiple-Component con estados de energía funcional único o múltiple
[Solo se aplica a KMDF]
Un controlador KMDF para un dispositivo de varios componentes puede definir uno o varios estados de energía funcionales para cada componente.
En este caso, el controlador se registra directamente con el marco de administración de energía (PoFx). Para especificar que WDF no debe registrarse con PoFx, el controlador llama a WdfDeviceAssignS0IdleSettings con el miembro IdleTimeoutType de la estructura WDF_DEVICE_POWER_POLICY_IDLE_SETTINGS establecida en DriverManagedIdleTimeout. Normalmente, el controlador llama a este método desde su función de devolución de llamada EvtDriverDeviceAdd .
A continuación, el controlador debe registrarse con PoFx. Para ello, el controlador llama a PoFxRegisterDevice y, a continuación, PoFxStartDevicePowerManagement. El controlador solo debe registrarse con PoFx una vez, cuando se inicie el dispositivo por primera vez. Una manera de hacerlo es llamar a estas rutinas desde una función EvtDeviceSelfManagedIoInit proporcionada por el controlador. Se llama a EvtDeviceSelfManagedIoInit solo la primera vez que se inicia el dispositivo.
Cuando se quita el dispositivo, el controlador debe llamar a PoFxUnregisterDevice para anular el registro del dispositivo de PoFx. Para anular el registro solo una vez, se recomienda que el controlador llame a esta rutina desde una función EvtDeviceSelfManagedIoFlush proporcionada por el controlador. Se llama a EvtDeviceSelfManagedIoFlush solo cuando se quita el dispositivo. Al anular el registro en EvtDeviceSelfManagedIoFlush, el controlador conserva el registro de energía durante las transiciones de suspensión y reequilibrar y no tiene que mantener las referencias de energía para las solicitudes de E/S que permanecen pendientes durante estas transiciones.
Cuando el controlador llama a PoFxRegisterDevice, recibe un identificador de registro de energía (POHANDLE) que puede usar para interactuar directamente con PoFx, como se describe en los temas siguientes:
- Coordinación de solicitudes de E/S con estado de energía de componente
- Dispositivo de informes encendido cuando el sistema vuelve a S0
- Admitir Power-Down inactivos en dispositivos Multiple-Component
Además, el controlador puede llamar directamente a rutinas de power Framework para enviar solicitudes de control de energía y especificar requisitos de latencia, residencia y reactivación.
Para obtener más información sobre PoFx, consulte Información general de Power Management Framework.