Partager via


ExInterlockedPopEntrySList, fonction (wdm.h)

La ExInterlockedPopEntrySList supprime atomiquement la première entrée d’une liste liée séquencée.

Syntaxe

NTKERNELAPI
PSLIST_ENTRY
FASTCALL
ExInterlockedPopEntrySList (
    _Inout_ PSLIST_HEADER ListHead,
    _Inout_opt_ _Requires_lock_not_held_(*_Curr_) PKSPIN_LOCK Lock
    );

Paramètres

[in, out] ListHead

Pointeur vers la structure SLIST_HEADER qui sert d’en-tête pour la liste liée séquencée. ListHead doit avoir été initialisé en appelant ExInitializeSListHead.

[in, out] Lock

Pointeur vers une structure KSPIN_LOCK qui sert de verrou de rotation utilisé pour synchroniser l’accès à la liste. Le stockage du verrou de rotation doit être résident et doit avoir été initialisé en appelant KeInitializeSpinLock. Vous devez utiliser ce verrou de rotation uniquement avec les routines ExInterlockedXxxList.

Valeur de retour

ExInterlockedPopEntrySList retourne un pointeur vers la première structure SLIST_ENTRY de la liste. Si la liste était vide, la routine retourne NULL.

Remarques

Pour plus d’informations sur l’utilisation de cette routine pour implémenter une liste liée séquencée, consultez Listes liées singly et Doubly Linked.

Sur Windows 2000, les pilotes doivent utiliser le commutateur -D_WIN2K_COMPAT_SLIST_USAGE pour lier le code qui utilise ExInterlockedPopEntrySList.

ExInterlockedPopEntrySList peut être appelée à n’importe quel irQL. Le stockage du paramètre ListHead doit être résident à tous les IRQL.

Exigences

Exigence Valeur
client minimum pris en charge Disponible à partir de Windows 2000.
plateforme cible Universel
d’en-tête wdm.h (include Wdm.h, Ntddk.h, Ntifs.h)
bibliothèque NtosKrnl.lib
DLL NtosKrnl.exe
IRQL N’importe quel niveau (voir section Remarques)

Voir aussi

ExInitializeSListHead

ExInterlockedPushEntrySList

ExInterlockedRemoveHeadList

ExQueryDepthSList

KeInitializeSpinLock