共用方式為


RemoveEntryList 函式 (wdm.h)

RemoveEntryList 例程會從LIST_ENTRY結構的兩次鏈接清單中移除專案。

語法

BOOLEAN RemoveEntryList(
  [in] PLIST_ENTRY Entry
);

參數

[in] Entry

表示要移除之專案的 LIST_ENTRY 結構的指標。

傳回值

RemoveEntryList 會傳回 TRUE ;如果移除指定的項目之後,清單是空的。 否則,例程會傳回 FALSE ,表示產生的清單仍然包含一或多個專案。 如需詳細資訊,請參閱下方 一節。

備註

RemoveEntryList 會藉由在 Entry 之前將專案的 Flink 成員設定為指向 Entry 之後的進入,並將進入的Blink 成員設定為在 Entry之前指向進入前的專案。

傳回值可用來偵測何時從清單中移除最後一個專案。 空白清單只包含清單標頭,而且沒有列表專案。

一般而言, 進入 會指向清單中的專案,而不是指向清單前端。 不過, Entry 可以指向清單前端,在此情況下,例程會從清單中移除清單前端,以產生無外設清單。 以這種方式使用 RemoveEntryList 時,通常應該忽略傳回值。 若要判斷清單是否空白,請使用 IsListEmpty 例程。

如需實作雙連結清單時使用此例程的相關信息,請參閱 Singly 和 Doubly Linked 清單

RemoveEntryList 的呼叫端可以在任何 IRQL 上執行。 如果在 IRQL >= DISPATCH_LEVEL呼叫 RemoveEntryList,清單專案的記憶體必須位於內。

規格需求

需求
目標平台 桌面
標頭 wdm.h (包括 Wdm.h、Ntddk.h、Ntifs.h、Wudfwdm.h)
IRQL 任何層級 (請參閱一節)
DDI 合規性規則 DoubleExFreePool (storport)

另請參閱

InitializeListHead

IsListEmpty

RemoveHeadList

RemoveTailList