RemoveHeadList 函数 (wdm.h)

RemoveHeadList 例程从LIST_ENTRY结构的双重链接列表的开头删除一个条目。

语法

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

参数

[in, out] ListHead

指向用作列表标头 的 LIST_ENTRY 结构的指针。

返回值

RemoveHeadList 返回指向从列表中删除的条目的指针。 如果列表为空, RemoveHeadList 返回 ListHead

注解

RemoveHeadList 通过将 ListHead-Flink> 设置为指向列表中的第二个条目,从列表中删除第一个条目。 例程将第二个条目的 Blink 成员设置为 ListHead。 如果列表为空,这实际上是一个无操作。

有关在实现双重链接列表时使用此例程的信息,请参阅 Singly 和 Doubly Linked Lists

RemoveHeadList 的调用方可以在任何 IRQL 上运行。 如果在 IRQL >= DISPATCH_LEVEL 调用 RemoveHeadList,则 ListHead 和列表条目的存储必须是驻留的。

要求

要求
最低受支持的客户端 从 Windows 2000 开始可用。
目标平台 桌面
标头 wdm.h (包括 Wdm.h、Ntddk.h、Ntifs.h、Wudfwdm.h)
IRQL 任何级别 (请参阅备注部分)
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) 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)

另请参阅

ExInterlockedRemoveHeadList

InitializeListHead

IsListEmpty

RemoveEntryList

RemoveTailList