EVT_WDF_INTERRUPT_ENABLE funzione di callback (wdfinterrupt.h)
[Si applica a KMDF e UMDF]
La funzione di callback dell'evento EvtInterruptEnable di un driver abilita un interruzione hardware specificato.
Sintassi
EVT_WDF_INTERRUPT_ENABLE EvtWdfInterruptEnable;
NTSTATUS EvtWdfInterruptEnable(
[in] WDFINTERRUPT Interrupt,
[in] WDFDEVICE AssociatedDevice
)
{...}
Parametri
[in] Interrupt
Handle per un oggetto di interruzione del framework.
[in] AssociatedDevice
Handle per l'oggetto dispositivo framework passato al driver WdfInterruptCreate.
Valore restituito
La funzione di callback EvtInterruptEnable deve restituire STATUS_SUCCESS o un altro valore di stato per cui NT_SUCCESS(status) è TRUE se la funzione non rileva errori. In caso contrario, questa funzione deve restituire un valore di stato per il quale NT_SUCCESS(stato) è uguale a FALSE.
Commenti
Per registrare una funzione di callback EvtInterruptEnable , il driver deve inserire l'indirizzo della funzione di callback in una struttura WDF_INTERRUPT_CONFIG prima di chiamare WdfInterruptCreate.
Il framework chiama la funzione di callback EvtInterruptEnable del driver ogni volta che il dispositivo entra nello stato di lavoro (D0). Inoltre, un driver può causare che il framework chiami la funzione di callback EvtInterruptEnable chiamando WdfInterruptEnable. Si noti che la maggior parte dei driver basati su framework non deve chiamare WdfInterruptEnable, perché il framework chiama la funzione di callback EvtInterruptEnable ogni volta che il dispositivo entra nello stato di lavoro (D0).
Prima di chiamare la funzione di callback EvtInterruptEnable , il framework genera l'IRQL del processore al DIRQL del dispositivo e acquisisce il blocco spin specificato dal driver specificato nella struttura WDF_INTERRUPT_CONFIG dell'oggetto interrupt.
A partire dalla versione 1.11 di KMDF, il driver può fornire la gestione degli interruzioni a livello passivo. Se il driver ha richiesto la gestione degli interruzioni a livello passivo, prima di chiamare la funzione EvtInterruptEnable in IRQL = PASSIVE_LEVEL, il framework acquisisce il blocco di interruzione a livello passivo configurato dal driver nella struttura di WDF_INTERRUPT_CONFIG dell'oggetto interrupt.
Dopo aver restituito la funzione di callback EvtInterruptEnable , il framework chiama la funzione di callback dell'evento EvtDeviceD0EntryPostInterruptsEnabled in IRQL = PASSIVE_LEVEL.
Non è necessario presupporre che un dispositivo userà le stesse risorse di interruzione ogni volta che il framework chiama la funzione di callback EvtInterruptEnable del driver. A volte il gestore PnP ridistribuisce le risorse di sistema e potrebbe assegnare nuove risorse di interruzione al dispositivo. Il driver può chiamare WdfInterruptGetInfo per determinare le risorse di interruzione di un dispositivo.
Per altre informazioni sulla gestione degli interruzioni nei driver basati su framework, vedere Gestione degli interruzioni hardware.
Requisiti
Requisito | Valore |
---|---|
Piattaforma di destinazione | Universale |
Versione KMDF minima | 1.0 |
Versione UMDF minima | 2,0 |
Intestazione | wdfinterrupt.h (include Wdf.h) |
IRQL | Vedere la sezione Note. |