RemoveHeadList, fonction (wdm.h)

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

Syntaxe

PLIST_ENTRY RemoveHeadList(
  [in, out] PLIST_ENTRY ListHead
);

Paramètres

[in, out] ListHead

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

Valeur retournée

RemoveHeadList retourne un pointeur vers l’entrée supprimée de la liste. Si la liste est vide, RemoveHeadList renvoie ListHead.

Remarques

RemoveHeadList supprime la première entrée de la liste en définissant ListHead-Flink> pour qu’elle pointe vers la deuxième entrée de la liste. La routine définit le membre Blink de la deuxième entrée sur ListHead. Dans le cas où la liste est vide, il s’agit en fait d’une opération sans opération.

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 RemoveHeadList peuvent s’exécuter sur n’importe quel IRQL. Si RemoveHeadList est appelé dans IRQL >= DISPATCH_LEVEL, le stockage pour ListHead et les entrées de liste doivent être résidents.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Disponible à partir de Windows 2000.
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 CancelSpinLock(wdm), CompleteRequest(wdm), DoubleCompletion(wdm), DoubleExFreePool(storport), Init_NdisAllocateIoWorkItem(ndis), InvalidReqAccessLocal(kmdf), IoAllocateFree(wdm), IoReuseIrp(wdm), IrpProcessingComplete(wdm), MarkingInterlockedQueuedIrps(wdm), MarkingQueuedIrps(wdm), MarkIrpPending(wdm), MarkIrpPending2(wdm), PendedCompletedRequest(wdm), PendedCompletedRequest2(wdm), PendedCompletedRequest3(wdm), PendedCompletedRequestEx(wdm), RemoveLockLockCheck(wdm), RemoveLockForward(wdm), RemoveLockForward2(wdm), RemoveLockForwardDeviceControl(wdm), RemoveLockForwardDeviceControl2(wdm), RemoveLockForwardDeviceControl2(wdm), RemoveLockForwardDeviceControlInternal(wdm), RemoveLockForwardDeviceControlInternal2(wdm), RemoveLockForwardRead(wdm), RemoveLockForwardRead2(wdm), RemoveLockForwardWrite(wdm), RemoveLockForwardWrite2(wdm), RemoveLockMnRemove(wdm), RemoveLockMnSurpriseRemove(wdm), RemoveLockRelease2(wdm), RemoveLockReleaseCleanup(wdm), RemoveLockReleaseClose(wdm), RemoveLockReleaseCreate(wdm), RemoveLockReleaseDeviceControl(wdm), RemoveLockReleaseInternalDeviceControl(wdm), RemoveLockReleasePnp(wdm), RemoveLockReleasePower(wdm), RemoveLockReleaseRead(wdm), RemoveLockReleaseShutdown(wdm), RemoveLockReleaseSystemControl(wdm), RemoveLockReleaseWrite(wdm)

Voir aussi

ExInterlockedRemoveHeadList

InitializeListHead

IsListEmpty

RemoveEntryList

RemoveTailList