(wdm.h) RemoveHeadList 函数

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 链接列表

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

要求

   
最低受支持的客户端 从 Windows 2000 开始可用。
目标平台 桌面
Header 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 ) 、MarkInterlockedQueuedIrps (wdm) MarkQueuedIrps (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 () 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