KeAcquireInterruptSpinLock-Funktion (wdm.h)
Die KeAcquireInterruptSpinLock-Routine ruft die Drehsperre ab, die einem Interruptobjekt zugeordnet ist.
Syntax
KIRQL KeAcquireInterruptSpinLock(
PKINTERRUPT Interrupt
);
Parameter
Interrupt
[in, out] Gibt einen Zeiger auf ein Interruptobjekt an. Dieser Wert muss von IoConnectInterrupt oder IoConnectInterruptEx bereitgestellt werden.
Rückgabewert
KeAcquireInterruptSpinLock gibt den aktuellen IRQL zum Zeitpunkt des Aufrufs der Routine zurück. Dieser Wert wird an KeReleaseInterruptSpinLock übergeben, wenn die Spinsperre aufgehoben wird.
Hinweise
Treiber verwenden die Interrupt-Spin-Sperre, um den Zugriff auf den Arbeitsspeicher zu synchronisieren, der mit dem ISR des Interrupts freigegeben wird. Der Treiber kann die Spinsperre durch Aufrufen von KeReleaseInterruptSpinLock freigeben.
Jeder Code, der ausgeführt wird, während die Interrupt-Spinsperre gehalten wird, tut dies bei IRQL = DIRQL für den angegebenen Interrupt, sodass er sehr schnell ausgeführt werden muss. Weitere Informationen finden Sie unter Verwenden kritischer Abschnitte.
Die bevorzugte Methode zum Synchronisieren einer Treiberroutine mit einer ISR ist die Verwendung der KeSynchronizeExecution-Routine .
Ab Windows 8 kann ein Treiber IoConnectInterruptEx verwenden, um eine Interruptdienstroutine zu registrieren, die unter IRQL = PASSIVE_LEVEL ausgeführt wird und keine Drehsperre für die Interruptsynchronisierung verwendet. Wenn Interrupt auf ein Interruptobjekt zeigt, das eine Verbindung mit einer ISR auf passiver Ebene herstellt, verursacht KeAcquireInterruptSpinLock eine Fehlerprüfung. Weitere Informationen finden Sie unter Verwenden von Passive-Level Interruptdienstroutinen.
Aufrufer müssen unter IRQL <= DIRQL für Interrupt ausgeführt werden. (Dies ist der Wert, den der Treiber beim Erstellen von Interrupt als SynchronizeIrql-Parameter von IoConnectInterrupt übergeben hat.)
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows XP |
Kopfzeile | wdm.h |
IRQL | <= DIRQL |
DDI-Complianceregeln | HwStorPortProhibitedDIs(storport) |