exInterlockedRemoveHeadList 函式 (wdm.h)

ExInterlockedRemoveHeadList 例程會從LIST_ENTRY結構之多任務連結清單的開頭移除專案。

語法

PLIST_ENTRY ExInterlockedRemoveHeadList(
  [in, out] PLIST_ENTRY ListHead,
  [in, out] PKSPIN_LOCK Lock
);

參數

[in, out] ListHead

做為清單標頭 之LIST_ENTRY 結構的指標。

[in, out] Lock

KSPIN_LOCK結構的指標,做為用來同步存取清單的微調鎖定。 微調鎖定的記憶體必須是固定的,而且必須已藉由呼叫 KeInitializeSpinLock 來初始化。 您只能搭配 ExInterlockedXxx 清單 例程使用此微調鎖定。

傳回值

ExInterlockedRemoveHeadList 會傳回從清單中移除 LIST_ENTRY 結構的指標。 如果清單是空的,則例程會傳回 NULL

備註

ExInterlockedRemoveHeadList 會執行類似 RemoveHeadList 但不可部分完成的作業。 請勿在相同的清單上混合不可部分完成和非不可部分完成的呼叫。

如需使用此例程實作雙連結清單的詳細資訊,請參閱Singly和 Doubly Linked 清單

任何 IRQL 都可以呼叫 ExInterlockedRemoveHeadList 例程。 ListHead 參數的記憶體必須位於所有 IRCL。

規格需求

需求
最低支援的用戶端 從 Windows 2000 開始提供。
目標平台 Universal
標頭 wdm.h (包括 Wdm.h、Ntddk.h、Ntifs.h)
程式庫 NtosKrnl.lib
Dll NtosKrnl.exe
IRQL 任何層級 (請參閱一節)

另請參閱

ExInterlockedInsertHeadList

ExInterlockedInsertTailList

InitializeListHead

KeInitializeSpinLock

RemoveHeadList