Fonctions de rappel d’événements WDM et IRP
Kernel-Mode Driver Framework (KMDF) et User-Mode Driver Framework (UMDF) prennent en charge un sous-ensemble de runtimes d’intégration Windows. Le tableau suivant répertorie les principaux types d’IRP WDM et les fonctions de rappel d’événements d’infrastructure correspondantes. Sauf indication contraire, les rappels s’appliquent à KMDF et à UMDF.
Rappels KMDF pour IRP_MJ_PNP
Le tableau suivant répertorie, par ordre d’exécution, les rappels KMDF qui correspondent aux codes IRP mineurs pour IRP_MJ_PNP. Les flèches indiquent si un FDO WDM gère l’IRP quand il se déplace vers le haut ou le bas de la pile.
Note Dans un pilote KMDF, Plug-and-Play et la gestion de l’alimentation sont des opérations intégrées et le pilote ne reçoit pas les demandes de IRP_MJ_PNP ou de IRP_MJ_POWER. Au lieu de cela, l’infrastructure appelle un ensemble de rappels de base à la mise sous tension et un ensemble correspondant à l’arrêt, et appelle des rappels supplémentaires avant et après ce cœur défini comme approprié pour chaque demande de Plug-and-Play individuelle. Pour obtenir des diagrammes complets montrant les séquences de mise sous tension et de mise hors tension, consultez Portage de PnP et fonctionnalités de gestion de l’alimentation.
Rappels KMDF pour IRP_MJ_POWER
Le tableau suivant répertorie, par ordre d’exécution, les rappels KMDF qui correspondent aux codes IRP mineurs pour IRP_MJ_POWER. Les flèches indiquent si un FDO WDM gère l’IRP quand il se déplace vers le haut ou le bas de la pile.
Note Remarque : Dans un pilote KMDF, Plug-and-Play et la gestion de l’alimentation sont des opérations intégrées et le pilote ne reçoit pas les demandes de IRP_MJ_PNP mineures ou IRP_MJ_POWER individuelles. Au lieu de cela, l’infrastructure appelle un ensemble de rappels de base à la mise sous tension et un ensemble correspondant à l’arrêt, et appelle des rappels supplémentaires avant et après ce cœur défini comme approprié pour chaque demande de Plug-and-Play individuelle. Pour obtenir des diagrammes complets montrant les séquences de mise sous tension et de mise hors tension, consultez Portage de PnP et fonctionnalités de gestion de l’alimentation.
IRP_MJ_POWER code mineur | Rappels d’infrastructure |
---|---|
IRP_MN_SET_POWER pour D1, D2 ou D3 (mise hors tension) | EvtDeviceSelfManagedIoSuspendEvtIoStop (WdfRequestStopActionSuspend flag) EvtDeviceArmWakeFromS0 ou EvtDeviceArmWakeFromSxEvtDmaEnablerSelfManagedIoStop (KMDF uniquement)EvtDmaEnablerDisable (KMDF uniquement)EvtDmaEnablerFlush (KMDF uniquement)EvtDeviceD0ExitPreInterruptsDisabledEvtInterruptDisableEvtDeviceD0Exit |
↑ IRP_MN_SET_POWER pour D0 (mise sous tension) | EvtDeviceD0EntryEvtInterruptEnableEvtDeviceD0EntryPostInterruptsEnabledEvtDmaEnablerFill (KMDF uniquement)EvtDmaEnablerEnable (KMDF uniquement)EvtDmaEnablerSelfManagedIoStart (KMDF uniquement)EvtIoResumeEvtDeviceSelfManagedIoRestart |
IRP_MN_SET_POWER pour Sx | None |
↑IRP_MN_SET_POWER pour Sx | None |
IRP_MN_POWER_SEQUENCE | None |
IRP_MN_WAIT_WAKE | EvtDeviceEnableWakeAtBus (KMDF uniquement) |
↑IRP_MN_WAIT_WAKE | EvtDeviceDisableWakeAtBus (KMDF uniquement) |