Condividi tramite


EVT_WDF_INTERRUPT_SYNCHRONIZE funzione di callback (wdfinterrupt.h)

[Si applica a KMDF e UMDF]

La funzione di callback dell'evento EvtInterruptSynchronize di un driver esegue operazioni che devono essere sincronizzate con una funzione di callback EvtInterruptIsr .

Sintassi

EVT_WDF_INTERRUPT_SYNCHRONIZE EvtWdfInterruptSynchronize;

BOOLEAN EvtWdfInterruptSynchronize(
  [in] WDFINTERRUPT Interrupt,
  [in] WDFCONTEXT Context
)
{...}

Parametri

[in] Interrupt

Handle per un oggetto interrupt del framework.

[in] Context

Informazioni fornite dal driver che il driver specifica quando chiama WdfInterruptSynchronize.

Valore restituito

La funzione di callback EvtInterruptSynchronize deve restituire TRUE se l'operazione ha esito positivo. In caso contrario, questa funzione deve restituire FALSE.

Commenti

Per eseguire una funzione di callback EvtInterruptSynchronize , il driver deve chiamare WdfInterruptSynchronize.

Se il driver ha configurato l'oggetto interrupt per la gestione in IRQL (DIRQL) del dispositivo, prima di chiamare la funzione di callback EvtInterruptSynchronize , il framework genera il livello di richiesta di interruzione del processore a DIRQL e acquisisce il blocco di selezione specificato dal driver nella struttura di WDF_INTERRUPT_CONFIG dell'oggetto interrupt.

Di conseguenza, mentre è in esecuzione una funzione di callback EvtInterruptSynchronize , non è possibile eseguire la funzione di callback evtInterruptIsr dell'oggetto interrupt e qualsiasi altro codice eseguito in DIRQL tenendo premuto il blocco spin.

Le funzioni di callback EvtInterruptSynchronize devono essere progettate in modo che vengano eseguite solo per un breve periodo di tempo. Vengono in genere usati per accedere ai dati di interrupt a cui si accede anche da altre funzioni di callback evtInterruptSynchronize o EvtInterruptIsr di un 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 EvtInterruptSynchronize 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.

Per altre informazioni sulla funzione di callback EvtInterruptSynchronize , vedere Synchronizing Interrupt Code .For more information about the EvtInterruptSynchronize callback function, see Synchronizing Interrupt Code.

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

EvtInterruptIsr

WDF_INTERRUPT_CONFIG

WdfInterruptSynchronize