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") |