Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die KeAcquireInStackQueuedSpinLockAtDpcLevel Routine ruft eine Drehsperre in der Warteschlange ab, wenn der Aufrufer bereits bei IRQL >= DISPATCH_LEVEL ausgeführt wird.
Syntax
void KeAcquireInStackQueuedSpinLockAtDpcLevel(
PKSPIN_LOCK SpinLock,
PKLOCK_QUEUE_HANDLE LockHandle
);
Parameter
SpinLock
[in, out] Gibt die drehungssperre an, die erworben werden soll. Dieser Parameter muss durch einen Aufruf der KeInitializeSpinLock Routine initialisiert worden sein.
LockHandle
[out] Zeiger auf eine vom Aufrufer bereitgestellte KLOCK_QUEUE_HANDLE Struktur, die von der Routine verwendet werden kann, um den Drehsperreswarteschlangenhandle zurückzugeben. Um die Sperre freizugeben, übergibt der Aufrufer diesen Wert an die KeReleaseInStackQueuedSpinLockFromDpcLevel Routine.
Rückgabewert
Nichts
Bemerkungen
Für einen Treiber, der bei IRQL >= DISPATCH_LEVEL ausgeführt wird, KeAcquireInStackQueuedSpinLockAtDpcLevel eine Drehsperre als in die Warteschlange eingereihtes Drehschloss. Weitere Informationen finden Sie unter Schlösser in der Warteschlange. Rufen Sie zum Freigeben der Drehsperre die KeReleaseInStackQueuedSpinLockFromDpcLevel Routine auf.
Treiber, die bereits an einem IRQL->= DISPATCH_LEVEL ausgeführt werden, können diese Routine aufrufen, um die in die Warteschlange eingereihte Drehungssperre schneller abzurufen. Verwenden Sie andernfalls die KeAcquireInStackQueuedSpinLock Routine, um die Drehsperre zu erwerben.
Bei einem Treiber, der bei IRQL-> DISPATCH_LEVEL ausgeführt wird, erhält diese Routine die Sperre, ohne die aktuelle IRQL zu ändern. Für einen Treiber, der bei IRQL = DISPATCH_LEVEL ausgeführt wird, verbessert diese Routine die Leistung, indem sie die Sperre erhält, ohne zuerst die IRQL auf DISPATCH_LEVEL festzulegen, was in diesem Fall ein redundanter Vorgang wäre.
Wie gewöhnliche Drehsperren dürfen in die Warteschlange eingereihte Drehsperren nur unter besonderen Umständen verwendet werden. Eine Beschreibung der Verwendung von Drehsperren finden Sie unter KeAcquireSpinLock.
Treiber dürfen keine Aufrufe von KeAcquireSpinLock und KeAcquireInStackQueuedSpinLock auf derselben Drehsperre kombinieren. Eine Drehungssperre muss immer als in die Warteschlange eingereihte Spin-Sperre oder als normale Drehsperre abgerufen oder freigegeben werden.
Anforderungen
Anforderung | Wert |
---|---|
mindestens unterstützte Client- | Windows XP |
Header- | wdm.h |
IRQL- | IRQL->= DISPATCH_LEVEL |
DDI-Complianceregeln | HwStorPortProhibitedDIs(storport) |