ExInterlockedPopEntryList-Funktion (wdm.h)
Die ExInterlockedPopEntryList-Routine entfernt atomar einen Eintrag vom Anfang einer singly verknüpften Liste von SINGLE_LIST_ENTRY Strukturen.
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 Listenheader dient. Der Speicher für ListHead muss sich bei allen IRQLs befinden.
[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 Spinsperre muss resident sein und durch Aufrufen von KeInitializeSpinLock initialisiert worden sein. Sie müssen diese Spin-Sperre 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.
Hinweise
ExInterlockedPopEntryList führt den gleichen Vorgang wie PopEntryList aus, jedoch atomar. Mischen Sie keine atomaren und nicht-atomaren Aufrufe in derselben Liste.
Weitere Informationen zur Verwendung dieser Routine zum Implementieren einer singly verknüpften Liste finden Sie unter Singly and Doubly Linked Listen.
Die ExInterlockedPopEntryList-Routine kann in jedem IRQL aufgerufen werden. Der Speicher für den ListHead-Parameter muss bei allen IRQLs vorhanden sein.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Verfügbar ab Windows 2000. |
Zielplattform | Universell |
Header | wdm.h (einschließlich Wdm.h, Ntddk.h, Ntifs.h) |
Bibliothek | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | Beliebige Ebene (siehe Abschnitt "Hinweise") |