Fonction RemoveEntryList (wdm.h)

La routine RemoveEntryList supprime une entrée d’une liste doublement liée de structures LIST_ENTRY .

Syntaxe

BOOLEAN RemoveEntryList(
  [in] PLIST_ENTRY Entry
);

Paramètres

[in] Entry

Pointeur vers la structure LIST_ENTRY qui représente l’entrée à supprimer.

Valeur retournée

RemoveEntryList retourne TRUE si, après la suppression de l’entrée désignée, la liste est vide. Sinon, la routine retourne FALSE pour indiquer que la liste résultante contient toujours une ou plusieurs entrées. Pour plus d’informations, consultez la section Remarques ci-dessous.

Remarques

RemoveEntryList supprime l’entrée en définissant le membre Flink de l’entrée avant Entrée pour qu’il pointe vers l’entrée après Entrée, et le membre Blink de l’entrée après Entrée pour pointer vers l’entrée avant Entrée.

La valeur de retour peut être utilisée pour détecter quand la dernière entrée est supprimée de la liste. Une liste vide se compose d’une tête de liste uniquement et d’aucune entrée de liste.

En règle générale, l’entrée pointe vers une entrée dans une liste et non vers l’en-tête de liste. Toutefois, Entry peut pointer vers une tête de liste, auquel cas la routine supprime le chef de liste de la liste pour produire une liste sans tête. Lorsque RemoveEntryList est utilisé de cette façon, la valeur de retour doit généralement être ignorée. Pour déterminer si une liste est vide, utilisez la routine IsListEmpty .

Pour plus d’informations sur l’utilisation de cette routine lors de l’implémentation d’une liste doublement liée, consultez Singly and Doubly Linked Listes.

Les appelants de RemoveEntryList peuvent être en cours d’exécution à n’importe quel IRQL. Si RemoveEntryList est appelé dans IRQL >= DISPATCH_LEVEL, le stockage des entrées de liste doit être résident.

Configuration requise

Condition requise Valeur
Plateforme cible Desktop (Expérience utilisateur)
En-tête wdm.h (inclure Wdm.h, Ntddk.h, Ntifs.h, Wudfwdm.h)
IRQL N’importe quel niveau (voir la section Remarques)
Règles de conformité DDI DoubleExFreePool(storport)

Voir aussi

InitializeListHead

IsListEmpty

RemoveHeadList

RemoveTailList