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