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) |