Condividi tramite


Funzione WdfInterruptSynchronize (wdfinterrupt.h)

[Si applica a KMDF e UMDF]

Il metodo WdfInterruptSynchronize esegue una funzione di callback specificata nel DIRQL del dispositivo mantenendo il blocco di selezione di un oggetto interrupt.

Per gli oggetti interrupt a livello passivo, questo metodo esegue una funzione di callback specificata a livello passivo mantenendo il blocco di interrupt a livello passivo di un oggetto interrupt.

Sintassi

BOOLEAN WdfInterruptSynchronize(
  [in] WDFINTERRUPT                  Interrupt,
  [in] PFN_WDF_INTERRUPT_SYNCHRONIZE Callback,
  [in] WDFCONTEXT                    Context
);

Parametri

[in] Interrupt

Handle per un oggetto interrupt del framework.

[in] Callback

Puntatore a un EvtInterruptSynchronize funzione di callback.

[in] Context

Puntatore non tipizzato alle informazioni fornite dal driver che il framework passa al EvtInterruptSynchronize funzione di callback.

Valore restituito

WdfInterruptSynchronize restituisce il valore di stato booleano restituito dal EvtInterruptSynchronize funzione di callback.

Se il driver fornisce un handle di oggetto non valido, si verifica un controllo di bug.

Osservazioni:

Se si vuole che il driver esegua codice che deve essere eseguito senza essere superato e con la manutenzione degli interrupt del dispositivo disabilitati in modo efficace, è necessario inserire tale codice in un EvtInterruptSynchronize funzione di callback. Per pianificare l'esecuzione della funzione di callback, il driver deve chiamare WdfInterruptSynchronize.

Il metodo WdfInterruptSynchronize restituisce dopo il completamento dell'esecuzione della EvtInterruptSynchronize funzione di callback.

Anziché chiamare WdfInterruptSynchronize, il driver può chiamare WdfInterruptAcquireLock e WdfInterruptReleaseLock.

Per altre informazioni sul metodo WdfInterruptSynchronize, vedere Sincronizzazione del codice interrupt.

Per altre informazioni sulla gestione degli interrupt nei driver basati su framework, vedere Gestione degli interrupt hardware.

Per gli interrupt a livello passivo, il driver deve chiamare WdfInterruptSynchronize in IRQL = PASSIVE_LEVEL.

Non chiamare WdfInterruptSynchronize da un contesto di thread arbitrario, ad esempio un gestore di richieste .

Esempi

Nell'esempio di codice seguente viene illustrato come chiamare WdfInterruptSynchronize per pianificare l'esecuzione di un EvtInterruptSynchronize funzione di callback.

BOOLEAN synchronizeReturnValue;

synchronizeReturnValue = WdfInterruptSynchronize(
                                         WdfInterrupt,
                                         MyEvtInterruptSynchronize,
                                         CallbackContext
                                         );

Requisiti

Requisito Valore
Piattaforma di destinazione Universale
versione minima di KMDF 1.0
versione minima di UMDF 2.0
intestazione wdfinterrupt.h (include Wdf.h)
Biblioteca Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF)
IRQL <=DISPATCH_LEVEL
regole di conformità DDI DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf)

Vedere anche

EvtInterruptSynchronize

WdfInterruptAcquireLock

WdfInterruptReleaseLock