Freigeben über


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)

Weitere Informationen

IoConnectInterrupt

KeReleaseInterruptSpinLock

KeSynchronizeExecution