Lire en anglais

Partager via


Fonction ExInterlockedInsertTailList (wdm.h)

La routine ExInterlockedInsertTailList insère atomiquement une entrée à la fin d’une liste doublement liée de structures LIST_ENTRY .

Syntaxe

C++
PLIST_ENTRY ExInterlockedInsertTailList(
  [in, out] PLIST_ENTRY                  ListHead,
  [in, out] __drv_aliasesMem PLIST_ENTRY ListEntry,
  [in, out] PKSPIN_LOCK                  Lock
);

Paramètres

[in, out] ListHead

Pointeur vers la structure LIST_ENTRY qui sert d’en-tête de liste.

[in, out] ListEntry

Pointeur vers la structure LIST_ENTRY qui représente l’entrée à insérer dans la liste.

[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

ExInterlockedInsertTailList retourne un pointeur vers la dernière entrée de la liste avant l’insertion de la nouvelle entrée. Si la liste était vide, la routine retourne NULL.

Remarques

ExInterlockedInsertTailList effectue la même opération que InsertTailList, 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 doublement liée, consultez Singly and Doubly Linked Listes.

La routine ExInterlockedInsertTailList peut être appelée à n’importe quel IRQL. Le stockage du paramètre ListHead et des entrées de liste doit être résident à tous les IRQL.

Configuration requise

Voir aussi

ExInterlockedInsertHeadList

InitializeListHead

InsertTailList

KeInitializeSpinLock