Funzioni di callback eventi WDM e WDF
Kernel-Mode Driver Framework (KMDF) e User-Mode Driver Framework (UMDF) supportano un subset di IRP Windows. Nella tabella seguente sono elencati i principali tipi di IRP WDM e le funzioni di callback degli eventi del framework corrispondenti. A meno che non sia specificato diversamente, i callback si applicano sia a KMDF che a UMDF.
Callback kmDF per IRP_MJ_PNP
La tabella seguente elenca, in ordine di esecuzione, i callback kmDF che corrispondono ai codici IRP secondari per IRP_MJ_PNP. Le frecce indicano se un FDO WDM gestisce l'IRP durante il viaggio verso l'alto o verso il basso dello stack.
Nota In un driver kmDF, Plug and Play e gestione energia sono operazioni integrate e il driver non riceve le singole richieste di IRP_MJ_PNP o IRP_MJ_POWER. Il framework chiama invece un set di callback di base in fase di alimentazione e un set corrispondente in fase di alimentazione e chiama callback aggiuntivi prima e dopo questo set di core come appropriato per ogni singola richiesta di Plug and Play. Per diagrammi completi che mostrano le sequenze di alimentazione e risparmio energia, vedere Conversione di PnP e funzionalità di Power Management.
Callback KMDF per IRP_MJ_POWER
Nella tabella seguente sono elencati, in ordine di esecuzione, i callback kmdf che corrispondono ai codici IRP secondari per IRP_MJ_POWER. Le frecce indicano se un fdO WDM gestisce l'IRP durante il viaggio verso l'alto o verso il basso dello stack.
Nota Nota: in un driver KMDF, Plug and Play e risparmio energia sono operazioni integrate e il driver non riceve le singole richieste di IRP_MJ_PNP o IRP_MJ_POWER. Il framework chiama invece un set di core di callback in fase di accensione e un set corrispondente in fase di accensione e chiama callback aggiuntivi prima e dopo questo set di core in base alle esigenze di ogni singola richiesta Plug and Play. Per diagrammi completi che mostrano le sequenze di risparmio energia e risparmio energia, vedere Porting PnP and Power Management Functionality (Conversione di PnP e funzionalità di risparmio energia).
IRP_MJ_POWER codice secondario | Callback del framework |
---|---|
.IRP_MN_SET_POWER per D1, D2 o D3 (spegnimento) | EvtDeviceSelfManagedIoSuspendEvtIoStop (WdfRequestStopActionSuspend flag) EvtDeviceArmWakeFromS0 o EvtDeviceArmWakeFromSxEvtDmaEnablerSelfManaged IoStop (solo KMDF)EvtDmaEnablerDisable (solo KMDF)EvtDmaEnablerFlush (solo KMDF)EvtDeviceD0ExitPreInterruptsDisabledEvtInterruptDisableEvtDeviceD0Exit |
.IRP_MN_SET_POWER per D0 (alimentazione) | EvtDeviceD0EntryEvtInterruptEnableEvtDeviceD0EntryPostInterruptsEnabledEvtDmaEnablerFill (solo KMDF)EvtDmaEnablerEnable (solo KMDF)EvtDmaEnablerSelfManagedIoStart (solo KMDF)EvtIoResumeEvtDeviceSelfManagedIoRestart |
^IRP_MN_SET_POWER per Sx | Nessuno |
.IRP_MN_SET_POWER per Sx | Nessuno |
IRP_MN_POWER_SEQUENCE | Nessuno |
^IRP_MN_WAIT_WAKE | EvtDeviceEnableWakeAtBus (solo KMDF) |
-IRP_MN_WAIT_WAKE | EvtDeviceDisableWakeAtBus (solo KMDF) |