Partager via


ExInterlockedPopEntryList, fonction (wdm.h)

L'ExInterlockedPopEntryList supprime atomiquement une entrée à partir du début d’une liste liée de manièreingique de structures SINGLE_LIST_ENTRY.

Syntaxe

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

Paramètres

[in, out] ListHead

Pointeur vers la structure SINGLE_LIST_ENTRY qui sert d’en-tête de liste. Le stockage de ListHead doit être résident à tous les IRQL.

[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

ExInterlockedPopEntryList retourne un pointeur vers la structure SINGLE_LIST_ENTRY supprimée de la liste. Si la liste était vide, la routine retourne NULL .

Remarques

ExInterlockedPopEntryList effectue la même opération que PopEntryList, mais atomiquement. Ne mélangez pas d’appels atomiques et non atomiques dans la même liste.

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

La routine ExInterlockedPopEntryList 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

ExInterlockedPopEntrySList

ExInterlockedPushEntryList

KeInitializeSpinLock

popEntryList