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) |