共用方式為


ExInterlockedPopEntrySList 函式 (wdm.h)

ExInterlockedPopEntrySList 例程會以不可部分完成的方式從循序的單選連結清單中移除第一個專案。

語法

NTKERNELAPI
PSLIST_ENTRY
FASTCALL
ExInterlockedPopEntrySList (
    _Inout_ PSLIST_HEADER ListHead,
    _Inout_opt_ _Requires_lock_not_held_(*_Curr_) PKSPIN_LOCK Lock
    );

參數

[in, out] ListHead

SLIST_HEADER 結構的指標,做為循序單序連結清單的標頭。 ListHead 必須藉由 呼叫 exInitializeSListHead來初始化。

[in, out] Lock

KSPIN_LOCK 結構的指標,做為用來同步處理清單存取權的微調鎖定。 微調鎖定的記憶體必須是常駐的,而且必須透過呼叫keInitializeSpinLock 初始化。 您必須將此微調鎖定只與 ExInterlockedXxxList 例程搭配使用。

傳回值

ExInterlockedPopEntrySList 會傳回清單上第一個 SLIST_ENTRY 結構的指標。 如果清單是空的,則例程會傳回NULL。

言論

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

在 Windows 2000 上,驅動程式必須使用 -D_WIN2K_COMPAT_SLIST_USAGE 參數,才能成功連結使用 exInterlockedPopEntrySList 的程式代碼。

任何 IRQL 都可以呼叫 ExInterlockedPopEntrySListListHead 參數的記憶體必須位於所有 IRQL。

要求

要求 價值
最低支援的用戶端 從 Windows 2000 開始提供。
目標平臺 普遍
標頭 wdm.h (包括 Wdm.h、Ntddk.h、Ntifs.h)
連結庫 NtosKrnl.lib
DLL NtosKrnl.exe
IRQL 任何層級 (請參閱一節)

另請參閱

ExInitializeSListHead

ExInterlockedPushEntrySList

ExInterlockedRemoveHeadList

ExQueryDepthSList

KeInitializeSpinLock