ExInterlockedPopEntrySList-Funktion (wdm.h)
Die ExInterlockedPopEntrySList-Routine entfernt den ersten Eintrag atomar aus einer sequenzierten, singly verknüpften Liste.
Syntax
NTKERNELAPI
PSLIST_ENTRY
FASTCALL
ExInterlockedPopEntrySList (
_Inout_ PSLIST_HEADER ListHead,
_Inout_opt_ _Requires_lock_not_held_(*_Curr_) PKSPIN_LOCK Lock
);
Parameter
[in, out] ListHead
Ein Zeiger auf die SLIST_HEADER-Struktur , die als Header für die sequenzierte, singly verknüpfte Liste dient. ListHead muss durch Aufrufen von ExInitializeSListHead initialisiert worden 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 Spinsperre muss resident sein und durch Aufrufen von KeInitializeSpinLock initialisiert worden sein. Sie müssen diese Spinsperre nur mit den ExInterlockedXxxList-Routinen verwenden.
Rückgabewert
ExInterlockedPopEntrySList gibt einen Zeiger auf die erste SLIST_ENTRY Struktur in der Liste zurück. Wenn die Liste leer war, gibt die Routine NULL zurück.
Hinweise
Weitere Informationen zur Verwendung dieser Routine zum Implementieren einer sequenzierten, singly verknüpften Liste finden Sie unter Singly und Doubly Linked Listen.
Unter Windows 2000 müssen Treiber den Switch -D_WIN2K_COMPAT_SLIST_USAGE verwenden, um Code erfolgreich zu verknüpfen, der ExInterlockedPopEntrySList verwendet.
ExInterlockedPopEntrySList kann in jedem IRQL aufgerufen werden. Der Speicher für den ListHead-Parameter muss an allen IRQLs ansässig 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) |