Freigeben über


RemoveHeadList-Funktion (wdm.h)

Die RemoveHeadList-Routine entfernt einen Eintrag vom Anfang einer doppelt verknüpften Liste von LIST_ENTRY Strukturen.

Syntax

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

Parameter

[in, out] ListHead

Zeiger auf die LIST_ENTRY-Struktur , die als Listenheader dient.

Rückgabewert

RemoveHeadList gibt einen Zeiger auf den Eintrag zurück, der aus der Liste entfernt wurde. Wenn die Liste leer ist, gibt RemoveHeadListListHead zurück.

Hinweise

RemoveHeadList entfernt den ersten Eintrag aus der Liste, indem ListHead-Flink> so festgelegt wird, dass er auf den zweiten Eintrag in der Liste verweist. Die Routine legt den Blink-Member des zweiten Eintrags auf ListHead fest. Für den Fall, dass die Liste leer ist, ist dies effektiv ein No-Op.

Informationen zur Verwendung dieser Routine beim Implementieren einer doppelt verknüpften Liste finden Sie unter Singly und Doubly Linked Listen.

Aufrufer von RemoveHeadList können in jedem IRQL ausgeführt werden. Wenn RemoveHeadList unter IRQL >= DISPATCH_LEVEL aufgerufen wird, müssen der Speicher für ListHead und die Listeneinträge resident sein.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Verfügbar ab Windows 2000.
Zielplattform Desktop
Kopfzeile wdm.h (include Wdm.h, Ntddk.h, Ntifs.h, Wudfwdm.h)
IRQL Beliebige Ebene (siehe Abschnitt "Hinweise")
DDI-Complianceregeln 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), RemoveLock(wdm), RemoveLockCheck(wdm), RemoveLockForward(wdm), RemoveLockForward2(wdm), RemoveLockForwardDeviceControl(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)

Weitere Informationen

ExInterlockedRemoveHeadList

InitializeListHead

IsListEmpty

RemoveEntryList

RemoveTailList