EVT_WDF_INTERRUPT_DISABLE funzione di callback (wdfinterrupt.h)
[Si applica a KMDF e UMDF]
La funzione di callback dell'evento EvtInterruptDisable di un driver disabilita un interrupt hardware specificato.
Sintassi
EVT_WDF_INTERRUPT_DISABLE EvtWdfInterruptDisable;
NTSTATUS EvtWdfInterruptDisable(
[in] WDFINTERRUPT Interrupt,
[in] WDFDEVICE AssociatedDevice
)
{...}
Parametri
[in] Interrupt
Handle per un oggetto interrupt del framework.
[in] AssociatedDevice
Handle per l'oggetto dispositivo framework passato dal driver a WdfInterruptCreate.
Valore restituito
La funzione di callback EvtInterruptDisable 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(status) è uguale a FALSE.
Commenti
Per registrare una funzione di callback EvtInterruptDisable , 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 EvtInterruptDisable del driver ogni volta che il dispositivo lascia lo stato di lavoro (D0). Inoltre, un driver può causare la chiamata del framework alla funzione di callback EvtInterruptDisable chiamando WdfInterruptDisable. Si noti che la maggior parte dei driver basati su framework non deve chiamare WdfInterruptDisable, perché il framework chiama la funzione di callback EvtInterruptDisable del driver ogni volta che il dispositivo lascia lo stato di lavoro (D0).
Prima di chiamare la funzione di callback EvtInterruptDisable , il framework genera l'IRQL del processore al DIRQL del dispositivo e acquisisce il blocco di rotazione specificato dal driver nella struttura di WDF_INTERRUPT_CONFIG dell'oggetto interrupt.
A partire dalla versione 1.11 di KMDF, il driver può fornire la gestione degli interrupt a livello passivo. Se il driver ha richiesto la gestione degli interrupt a livello passivo, prima di chiamare la funzione EvtInterruptDisable in IRQL = PASSIVE_LEVEL, il framework acquisisce il blocco di interrupt a livello passivo configurato dal driver nella struttura di WDF_INTERRUPT_CONFIG dell'oggetto interrupt.
Prima di chiamare la funzione di callback EvtInterruptDisable , il framework chiama la funzione di callback dell'evento EvtDeviceD0ExitPreInterruptsDisruptsDisabled in IRQL = PASSIVE_LEVEL.
Per altre informazioni sulla gestione degli interrupt nei driver basati su framework, vedere Gestione degli interrupt 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. |