Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Se il driver gestisce gli interrupt del dispositivo, deve fornire funzioni di callback EvtInterruptEnable e EvtInterruptDisable che abilitano e disabilitano gli interrupt. In genere, queste funzioni di callback vengono eseguite nel DIRQL del dispositivo e devono eseguire qualsiasi operazione necessaria per abilitare e disabilitare il meccanismo di interruzione di un dispositivo. Per gli interrupt a livello passivo, queste funzioni di callback vengono eseguite in IRQL = PASSIVE_LEVEL mantenendo il blocco degli interrupt a livello passivo.
Se il driver deve eseguire operazioni aggiuntive correlate all'abilitazione o alla disabilitazione degli interrupt e se queste operazioni aggiuntive non possono essere eseguite a IRQL = DIRQL, il driver può anche fornire le funzioni di callback EvtDeviceD0EntryPostInterruptsEnabled e EvtDeviceD0ExitPreInterruptsDisabled. Queste due funzioni di callback vengono eseguite in IRQL = PASSIVE_LEVEL senza che sia mantenuto alcun blocco di interrupt e possono chiamare metodi degli oggetti del framework che non sono disponibili a IRQL = DIRQL.
Il framework chiama le funzioni di callback EvtInterruptEnable del driver e EvtDeviceD0EntryPostInterruptsEnabled ogni volta che il dispositivo entra nello stato di lavoro (D0), dopo che il framework ha chiamato la funzione di callback EvtDeviceD0Entry del driver.
Il framework chiama le funzioni di callback EvtDeviceD0ExitPreInterruptsDisabled e EvtInterruptDisable ogni volta che il dispositivo lascia il suo stato operativo, prima che il framework chiami la funzione di callback EvtDeviceD0Exit del driver. Per altre informazioni su quando il framework chiama le funzioni di callback di un driver, vedere Scenari di risparmio energia e PnP.
Non è necessario presupporre che un dispositivo userà le stesse risorse di interrupt ogni volta che il framework chiama la funzione di callback EvtInterruptEnable del driver. A volte il manager PnP ridistribuisce le risorse di sistemae potrebbe assegnare nuove risorse di interrupt al dispositivo.
Il driver può chiamare WdfInterruptGetInfo per determinare le risorse di interrupt di un dispositivo. Il driver può chiamare WdfInterruptGetDevice per determinare il dispositivo a cui appartiene un oggetto interrupt. Alcuni driver potrebbero chiamare WdfInterruptWdmGetInterrupt.
Per abilitare e disabilitare direttamente gli interrupt, il driver può chiamare i metodi WdfInterruptEnable e WdfInterruptDisable dell'oggetto interrupt, che chiamano le funzioni di callback degli eventi EvtInterruptEnable e EvtInterruptDisable del driver. Tuttavia, la maggior parte dei driver dovrebbe consentire al framework di chiamare le funzioni di callback EvtInterruptEnable e EvtInterruptDisable nei momenti appropriati.