ExInterlockedPopEntryList, fonction (wdm.h)
La routine ExInterlockedPopEntryList supprime atomiquement une entrée du début d’une liste de structures SINGLE_LIST_ENTRY liées séparément.
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 tournant 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 retournée
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 les 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 séparément, consultez Singly and Doubly Linked Listes.
La routine ExInterlockedPopEntryList peut être appelée à n’importe quel IRQL. Le stockage du paramètre ListHead doit être résident à tous les IRQL.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Disponible à partir de Windows 2000. |
Plateforme cible | Universal |
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 la section Remarques) |