Freigeben über


WdfInterruptSynchronize-Funktion (wdfinterrupt.h)

[Gilt für KMDF und UMDF]

Die WdfInterruptSynchronize--Methode führt eine angegebene Rückruffunktion im DIRQL des Geräts aus, während die Drehungssperre eines Interruptobjekts gehalten wird.

Bei Unterbrechungsobjekten auf passiver Ebene führt diese Methode eine angegebene Rückruffunktion auf passiver Ebene aus, während die Unterbrechungssperre eines Unterbrechungsobjekts auf passiver Ebene gehalten wird.

Syntax

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

Die Parameter

[in] Interrupt

Ein Handle zu einem 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 EvtInterruptSynchronize Rückruffunktion übergibt.

Rückgabewert

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

Wenn der Treiber ein ungültiges Objekthandle bereitstellt, tritt eine Fehlerüberprüfung auf.

Bemerkungen

Wenn Ihr Treiber Code ausführen soll, der ausgeführt werden muss, ohne dass ein Gerät vorgebeutet und die Wartung von Geräteunterbrechungen effektiv deaktiviert ist, sollten Sie diesen Code in einem EvtInterruptSynchronize Rückruffunktion platzieren. Um die Ausführung der Rückruffunktion zu planen, muss der Treiber WdfInterruptSynchronizeaufrufen.

Die WdfInterruptSynchronize--Methode wird zurückgegeben, nachdem die EvtInterruptSynchronize Rückruffunktion die Ausführung abgeschlossen hat.

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

Weitere Informationen zur WdfInterruptSynchronize--Methode finden Sie unter Synchronizing Interrupt Code.

Weitere Informationen zum Behandeln von Unterbrechungen in frameworkbasierten Treibern finden Sie unter Behandeln von Hardware-Interrupts.

Für Unterbrechungen auf passiver Ebene muss der Treiber WdfInterruptSynchronize- bei IRQL = PASSIVE_LEVEL aufrufen.

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

Beispiele

Im folgenden Codebeispiel wird gezeigt, 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
Minimale KMDF-Version 1.0
Mindest-UMDF-Version 2.0
Kopfzeile wdfinterrupt.h (einschließen Wdf.h)
Bibliothek Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF)
IRQL <=DISPATCH_LEVEL
DDI-Complianceregeln DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf)

Siehe auch

EvtInterruptSynchronize

WdfInterruptAcquireLock-

WdfInterruptReleaseLock-