IRP de WDM y funciones de devolución de llamada de eventos de WDF
Kernel-Mode Driver Framework (KMDF) y User-Mode Driver Framework (UMDF) admiten un subconjunto de IRP de Windows. En la tabla siguiente se enumeran los principales tipos irP de WDM y las funciones de devolución de llamada de eventos de marco correspondientes. A menos que se especifique lo contrario, las devoluciones de llamada se aplican tanto a KMDF como a UMDF.
Devoluciones de llamada de KMDF para IRP_MJ_PNP
En la tabla siguiente se enumeran, en orden de ejecución, las devoluciones de llamada de KMDF que corresponden a los códigos IRP menores para IRP_MJ_PNP. Las flechas indican si un FDO de WDM controla el IRP a medida que se desplaza hacia arriba o hacia abajo la pila.
Nota En un controlador KMDF, Plug and Play y la administración de energía son operaciones integradas y el controlador no recibe las solicitudes individuales de IRP_MJ_PNP menores o IRP_MJ_POWER. En su lugar, el marco llama a un conjunto básico de devoluciones de llamada en el encendido y un conjunto correspondiente en el apagado, y llama a devoluciones de llamada adicionales antes y después de este conjunto de núcleos según corresponda para cada solicitud de Plug and Play individual. Para obtener diagramas completos que muestran las secuencias de encendido y apagado, consulte Porting PnP and Power Management Functionality (Funcionalidad de portabilidad de PnP y administración de energía).
Devoluciones de llamada de KMDF para IRP_MJ_POWER
En la tabla siguiente se enumeran, en orden de ejecución, las devoluciones de llamada de KMDF que corresponden a los códigos IRP menores para IRP_MJ_POWER. Las flechas indican si un FDO de WDM controla el IRP a medida que se desplaza hacia arriba o hacia abajo la pila.
Nota Nota: En un controlador KMDF, Plug and Play y la administración de energía son operaciones integradas y el controlador no recibe las solicitudes individuales de IRP_MJ_PNP menores o IRP_MJ_POWER. En su lugar, el marco llama a un conjunto básico de devoluciones de llamada en el encendido y un conjunto correspondiente en el apagado, y llama a devoluciones de llamada adicionales antes y después de este conjunto de núcleos según corresponda para cada solicitud de Plug and Play individual. Para ver diagramas completos que muestran las secuencias de encendido y apagado, consulte Porting PnP and Power Management Functionality (Funcionalidad de migración de PnP y administración de energía).
IRP_MJ_POWER código secundario | Devoluciones de llamada de marco |
---|---|
IRP_MN_SET_POWER para D1, D2 o D3 (apagado) | EvtDeviceSelfManagedIoSuspendEvtIoStop (WdfRequestStopActionSuspend flag ) EvtDeviceArmWakeFromS0 o EvtDeviceArmWakeFromSxEvtDmaEnablerSelfManagedIoStop (solo KMDF)EvtDmaEnablerDisable (solo KMDF)EvtDmaEnablerFlush (solo KMDF)EvtDeviceD0ExitPreInterruptsDisabledEvtInterruptDisableEvtDeviceD0Exit |
IRP_MN_SET_POWER para D0 (encendido) | EvtDeviceD0EntryEvtInterruptEnableEvtDeviceD0EntryPostInterruptsEnabledEvtDmaEnablerFill (kmdf only)EvtDmaEnablerEnable (solo KMDF)EvtDmaEnablerSelfManagedIoStart (KMDF only)EvtIoResumeEvtDeviceSelfManagedIoRestart |
IRP_MN_SET_POWER para Sx | Ninguno |
IRP_MN_SET_POWER para Sx | Ninguno |
IRP_MN_POWER_SEQUENCE | Ninguno |
IRP_MN_WAIT_WAKE | EvtDeviceEnableWakeAtBus (solo KMDF) |
IRP_MN_WAIT_WAKE | EvtDeviceDisableWakeAtBus (solo KMDF) |