Freigeben über


WdfInterruptSynchronize-Funktion (wdfinterrupt.h)

[Gilt für KMDF und UMDF]

Die WdfInterruptSynchronize-Methode führt eine angegebene Rückruffunktion am DIRQL des Geräts aus, während die Spinsperre eines Interruptobjekts gedrückt wird.

Bei Interruptobjekten auf passiver Ebene führt diese Methode eine angegebene Rückruffunktion auf passiver Ebene aus, während die Interruptsperre eines Interruptobjekts auf passiver Ebene beibehalten wird.

Syntax

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

Parameter

[in] Interrupt

Ein Handle für ein Framework-Interruptobjekt.

[in] Callback

Ein Zeiger auf eine EvtInterruptSynchronize-Rückruffunktion .

[in] Context

Ein nicht typisierter Zeiger auf vom Treiber bereitgestellte Informationen, die das Framework an die Rückruffunktion EvtInterruptSynchronize übergibt.

Rückgabewert

WdfInterruptSynchronize gibt den booleschen status Wert zurück, den die Rückruffunktion EvtInterruptSynchronize zurückgibt.

Eine Fehlerüberprüfung tritt auf, wenn der Treiber ein ungültiges Objekthandle bereitstellt.

Hinweise

Wenn Ihr Treiber Code ausführen soll, der ausgeführt werden muss, ohne vorzeitig entfernt zu werden, und die Wartung von Geräteunterbrechungen effektiv deaktiviert ist, sollten Sie diesen Code in einer EvtInterruptSynchronize-Rückruffunktion platzieren. Um die Ausführung der Rückruffunktion zu planen, muss Ihr Treiber WdfInterruptSynchronize aufrufen.

Die WdfInterruptSynchronize-Methode gibt nach Abschluss der Ausführung der Rückruffunktion EvtInterruptSynchronize zurück.

Anstatt WdfInterruptSynchronize aufzurufen, kann Ihr Treiber WdfInterruptAcquireLock und WdfInterruptReleaseLock aufrufen.

Weitere Informationen zur WdfInterruptSynchronize-Methode finden Sie unter Synchronisieren von Interruptcode.

Weitere Informationen zur Behandlung von Interrupts in frameworkbasierten Treibern finden Sie unter Behandeln von Hardwareunterbrechungen.

Bei Unterbrechungen auf passiver Ebene muss der Treiber WdfInterruptSynchronize unter IRQL = PASSIVE_LEVEL aufrufen.

Rufen Sie WdfInterruptSynchronize nicht aus einem beliebigen Threadkontext auf, z. B. aus einem Anforderungshandler.

Beispiele

Das folgende Codebeispiel zeigt, wie Sie WdfInterruptSynchronize aufrufen, um die Ausführung einer EvtInterruptSynchronize-Rückruffunktion zu planen.

BOOLEAN synchronizeReturnValue;

synchronizeReturnValue = WdfInterruptSynchronize(
                                         WdfInterrupt,
                                         MyEvtInterruptSynchronize,
                                         CallbackContext
                                         );

Anforderungen

Anforderung Wert
Zielplattform Universell
KMDF-Mindestversion 1.0
UMDF-Mindestversion 2.0
Kopfzeile wdfinterrupt.h (einschließen von Wdf.h)
Bibliothek Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF)
IRQL <=DISPATCH_LEVEL
DDI-Complianceregeln DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf)

Weitere Informationen

EvtInterruptSynchronize

WdfInterruptAcquireLock

WdfInterruptReleaseLock