Compartir a través de


Dispositivo de informes encendido cuando el sistema vuelve a S0

[Solo se aplica a KMDF]

Cuando el sistema vuelve a su estado de funcionamiento (S0) desde un estado de baja potencia, el administrador de PnP envía un IRP (IRP_MN_SET_POWER) del sistema para devolver el dispositivo a su estado de funcionamiento (D0). WDF controla el IRP de set-power del sistema. Sin embargo, dado que en el escenario de varios componentes, el controlador se ha registrado directamente con el marco de administración de energía (PoFx), el controlador debe llamar a PoFxReportDevicePoweredOn cuando el dispositivo haya completado la transición a su estado de alimentación totalmente encendido (D0). El controlador puede hacerlo registrando una rutina de preprocesamiento de WDM para recibir notificaciones cuando llega un IRP de configuración del sistema.

El controlador puede usar el procedimiento siguiente:

  1. Llame a WdfDeviceInitAssignWdmIrpPreprocessCallback para registrar una función de devolución de llamada EvtDeviceWdmIrpPreprocess para IRP_MN_SET_POWER. En la devolución de llamada, el controlador establece una marca en su extensión de dispositivo para indicar que debe llamar a PoFxReportDevicePoweredOn desde su siguiente devolución de llamada EvtDeviceD0Entry .
  2. En EvtDeviceD0Entry, si se establece la marca, el controlador borra la marca y llama a PoFxReportDevicePoweredOn.
  3. El controlador también comprueba la marca en EvtDeviceSelfManagedIoFlush. Si se establece la marca, el dispositivo no pudo volver a D0 y se ha quitado el dispositivo. En este caso, el controlador llama a PoFxReportDevicePoweredOn y, a continuación, anula el registro con power Framework.