Condividi tramite


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.

Vedi anche

EvtDeviceD0EntryPostInterruptsEnabled

EvtInterruptDisable

WDF_INTERRUPT_CONFIG

WdfInterruptCreate

WdfInterruptEnable

WdfInterruptGetInfo