IWDFInterrupt::TryToAcquireInterruptLock-Methode (wudfddi.h)

[Warnung: UMDF 2 ist die neueste Version von UMDF und ersetzt UMDF 1. Alle neuen UMDF-Treiber sollten mit UMDF 2 geschrieben werden. UMDF 1 werden keine neuen Features hinzugefügt, und die Unterstützung für UMDF 1 für neuere Versionen von Windows 10 ist eingeschränkt. Universelle Windows-Treiber müssen UMDF 2 verwenden. Weitere Informationen finden Sie unter Erste Schritte mit UMDF.]

Die TryToAcquireInterruptLock-Methode ruft die Interruptsperre ab, wenn sie bereits von keinem anderen Thread abgerufen wurde.

Syntax

BOOLEAN TryToAcquireInterruptLock();

Rückgabewert

Die Methode gibt TRUE zurück, wenn die Interruptsperre erfolgreich abgerufen wurde. Andernfalls gibt die Methode FALSE zurück.

Hinweise

Im Gegensatz zu IWDFInterrupt::AcquireInterruptLock wartet IWDFInterrupt::TryToAcquireInterruptLock nicht, bis die Interruptsperre verfügbar wird, wenn ein anderer Thread sie enthält.

Beim Ausführen in einem beliebigen Thread, z. B. einer E/A-Warteschlangenrückrufmethode, müssen Treiber IWDFInterrupt::TryToAcquireInterruptLock anstelle von IWDFInterrupt::AcquireInterruptLock aufrufen. Der Treiber ruft beispielsweise IWDFInterrupt::TryToAcquireInterruptLock von IQueueCallbackRead::OnRead auf. Dadurch wird die Möglichkeit eines Deadlocks vermieden, wie im Abschnitt Hinweise von IWDFInterrupt::AcquireInterruptLock beschrieben.

Der Treiber darf nicht versuchen, die Sperre rekursiv abzurufen. Wenn eine Verbindung mit dem Debugger besteht, führt das Framework in diesem Szenario einen Haltepunkt ein.

Weitere Informationen zur manuellen Unterbrechungssperre finden Sie unter Synchronisieren von Interruptcode.

Weitere Informationen zur Behandlung von Interrupts in UMDF-Treibern finden Sie unter Zugreifen auf Hardware und Behandlung von Interrupts.

Anforderungen

Anforderung Wert
Ende des Supports In UMDF 2.0 und höher nicht verfügbar.
Zielplattform Desktop
UMDF-Mindestversion 1.11
Kopfzeile wudfddi.h
DLL WUDFx.dll

Weitere Informationen

IWDFInterrupt

IWDFInterrupt::AcquireInterruptLock

WdfInterruptTryToAcquireLock