Condividi tramite


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.

Vedi anche

EvtDeviceD0ExitPreInterruptsDisabled

EvtInterruptEnable

WDF_INTERRUPT_CONFIG

WdfInterruptCreate

WdfInterruptDisable