Freigeben über


ExInterlockedPopEntryList-Funktion (wdm.h)

Die ExInterlockedPopEntryList routinemäßig einen Eintrag vom Anfang einer singly verknüpften Liste von SINGLE_LIST_ENTRY Strukturen entfernt.

Syntax

PSINGLE_LIST_ENTRY ExInterlockedPopEntryList(
  [in, out] PSINGLE_LIST_ENTRY ListHead,
  [in, out] PKSPIN_LOCK        Lock
);

Parameter

[in, out] ListHead

Ein Zeiger auf die SINGLE_LIST_ENTRY Struktur, die als Listenkopf dient. Der Speicher für ListHead- muss bei allen IRQLs vorhanden sein.

[in, out] Lock

Ein Zeiger auf eine KSPIN_LOCK Struktur, die als Drehsperre dient, die zum Synchronisieren des Zugriffs auf die Liste verwendet wird. Der Speicher für die Spin-Sperre muss resident sein und muss durch Aufrufen von KeInitializeSpinLockinitialisiert werden. Sie müssen diese Drehsperre nur mit den ExInterlockedXxxList Routinen verwenden.

Rückgabewert

ExInterlockedPopEntryList gibt einen Zeiger auf die SINGLE_LIST_ENTRY Struktur zurück, die aus der Liste entfernt wurde. Wenn die Liste leer war, gibt die Routine NULL-zurück.

Bemerkungen

ExInterlockedPopEntryList führt den gleichen Vorgang wie PopEntryList, aber atomar aus. Mischen Sie keine atomischen und nicht-atomischen Aufrufe in derselben Liste.

Weitere Informationen zur Verwendung dieser Routine zum Implementieren einer singly verknüpften Liste finden Sie unter Singly and Doubly Linked Lists.

Die ExInterlockedPopEntryList- Routine kann bei jedem IRQL aufgerufen werden. Der Speicher für den ListHead Parameter muss bei allen IRQLs vorhanden sein.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Ab Windows 2000 verfügbar.
Zielplattform- Universal
Header- wdm.h (include Wdm.h, Ntddk.h, Ntifs.h)
Library NtosKrnl.lib
DLL- NtosKrnl.exe
IRQL- Beliebige Ebene (siehe Abschnitt "Hinweise")

Siehe auch

ExInitializeSListHead-

ExInterlockedPopEntrySList-

ExInterlockedPushEntryList

KeInitializeSpinLock

PopEntryList-