ExInterlockedInsertTailList 函式 (wdm.h)
ExInterlockedInsertTailList 例程會以不可部分完成的方式插入 LIST_ENTRY 結構之雙連結清單結尾的專案。
語法
PLIST_ENTRY ExInterlockedInsertTailList(
[in, out] PLIST_ENTRY ListHead,
[in, out] __drv_aliasesMem PLIST_ENTRY ListEntry,
[in, out] PKSPIN_LOCK Lock
);
參數
[in, out] ListHead
做為清單標頭之 LIST_ENTRY 結構的指標。
[in, out] ListEntry
LIST_ENTRY 結構的指標,表示要插入清單的專案。
[in, out] Lock
KSPIN_LOCK 結構的指標,做為用來同步處理清單存取權的微調鎖定。 微調鎖定的記憶體必須是常駐的,而且必須透過呼叫keInitializeSpinLock 初始化。 您必須將此微調鎖定只與 ExInterlockedXxxList 例程搭配使用。
傳回值
ExInterlockedInsertTailList 會在插入新專案 之前,傳回清單 最後一個專案的指標。 如果清單是空的,例程會傳回 null 。
言論
ExInterlockedInsertTailList 執行與 insertTailList 相同的作業,但不可部分完成。 請勿在相同的清單上混合不可部分完成和非不可部分完成的呼叫。
如需使用此例程實作雙重連結清單的詳細資訊,請參閱 Singly 和 Doubly 連結清單。
ExInterlockedInsertTailList 例程可以在任何 IRQL 呼叫。 ListHead 參數的記憶體,而且清單專案必須位於所有 IRCL。