Freigeben über


KeAcquireInterruptSpinLock-Funktion (wdm.h)

Die KeAcquireInterruptSpinLock Routine übernimmt die Drehsperre, die einem Interruptobjekt zugeordnet ist.

Syntax

KIRQL KeAcquireInterruptSpinLock(
  PKINTERRUPT Interrupt
);

Parameter

Interrupt

[in, out] Gibt einen Zeiger auf ein Interrupt-Objekt an. Dieser Wert muss von IoConnectInterrupt oder IoConnectInterruptEx-angegeben werden.

Rückgabewert

KeAcquireInterruptSpinLock gibt die aktuelle IRQL zurück, wenn die Routine aufgerufen wird. Dieser Wert wird an KeReleaseInterruptSpinLock übergeben, wenn die Drehsperre losgelassen wird.

Bemerkungen

Treiber verwenden die Unterbrechungs-Spin-Sperre, um den Zugriff auf den Speicher zu synchronisieren, der mit dem ISR des Interrupts gemeinsam genutzt wird. Der Treiber kann die Drehsperre loslassen, indem KeReleaseInterruptSpinLockaufgerufen wird.

Jeder Code, der ausgeführt wird, während die Unterbrechungs-Drehsperre gehalten wird, führt dies bei IRQL = DIRQL für die angegebene Interruptaus, sodass er sehr schnell ausgeführt werden muss. Weitere Informationen finden Sie unter Using Critical Sections.

Die bevorzugte Methode zum Synchronisieren einer Treiberroutine mit einem ISR ist die Verwendung der KeSynchronizeExecution Routine.

Ab Windows 8 kann ein Treiber IoConnectInterruptEx- verwenden, um eine Interruptdienstroutine zu registrieren, die bei IRQL = PASSIVE_LEVEL ausgeführt wird und für die unterbrechungssynchronisierung keine Drehsperre verwendet wird. Wenn Interrupt auf ein Interruptobjekt zeigt, das eine Verbindung mit einem passiven ISR herstellt, führt KeAcquireInterruptSpinLock zu einer Fehlerüberprüfung. Weitere Informationen finden Sie unter Using Passive-Level Interrupt Service Routines.

Anrufer müssen bei IRQL <= DIRQL für Interruptausgeführt werden. (Dies ist der Wert, den der Treiber als SynchronizeIrql Parameter von IoConnectInterrupt übergeben wird, wenn Interrupt- erstellt wird.)

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Windows XP
Header- wdm.h
IRQL- <= DIRQL
DDI-Complianceregeln HwStorPortProhibitedDIs(storport)

Siehe auch

IoConnectInterrupt-

KeReleaseInterruptSpinLock

KeSynchronizeExecution