共用方式為


ExInterlockedPushEntryList 函式 (wdm.h)

ExInterlockedPushEntryList 例程會以不可部分完成的方式在 SINGLE_LIST_ENTRY 結構之單一連結清單的開頭插入專案。

語法

PSINGLE_LIST_ENTRY ExInterlockedPushEntryList(
  [in, out] PSINGLE_LIST_ENTRY                  ListHead,
  [in, out] __drv_aliasesMem PSINGLE_LIST_ENTRY ListEntry,
  [in, out] PKSPIN_LOCK                         Lock
);

參數

[in, out] ListHead

做為清單標頭之 SINGLE_LIST_ENTRY 結構的指標。 ListHead 的記憶體必須位於所有 IRQL。

[in, out] ListEntry

SINGLE_LIST_ENTRY 結構的指標,表示要插入清單的專案。 ListEntry 的記憶體必須位於所有 IRCL。

[in, out] Lock

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

傳回值

ExInterlockedPushEntryList 會在插入新專案 之前,傳回清單 第一個專案的指標。 如果清單是空的,例程會傳回 null

言論

ExInterlockedPushEntryList 執行與 pushEntryList 相同的作業,但不可部分完成。 請勿在相同的清單上混合不可部分完成和非不可部分完成的呼叫。

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

ExInterlockedPushEntryList 例程可以在任何 IRQL 呼叫。 ListHead 參數的記憶體,而且清單專案必須位於所有 IRCL。

要求

要求 價值
最低支援的用戶端 從 Windows 2000 開始提供。
目標平臺 普遍
標頭 wdm.h (包括 Wdm.h、Ntddk.h、Ntifs.h)
連結庫 NtosKrnl.lib
DLL NtosKrnl.exe
IRQL 任何層級 (請參閱一節)
DDI 合規性規則 IoAllocateFree(wdm)IoReuseIrp(wdm)MarkInterlockedQueuedIrps(wdm)RemoveLockCheck(wdm)RemoveLockForward(wdm)RemoveLockForward2(wdm)RemoveLockForwardDeviceControl() wdm)RemoveLockForwardDeviceControl2(wdm)RemoveLockForwardDeviceControlInternal(wdm)RemoveLockForwardDeviceControlInternal2(wdm)RemoveLockForwardRead(wdm)RemoveLockForwardRead2(wdm)RemoveLockForwardWrite(wdm)RemoveLockForwardWrite2(wdm)RemoveLockRelease2(wdm)RemoveLockReleaseCleanup(wdm)RemoveLockReleaseClose(wdm)RemoveLockReleaseCreate(wdm)RemoveLockReleaseDeviceControl(wdm)RemoveLockReleaseInternalDeviceControl(wdm)RemoveLockReleasePower(wdm)RemoveLockReleaseRead(wdm)RemoveLockReleaseShutdown(wdm)RemoveLockReleaseSystemControl(wdm)RemoveLockReleaseWrite(wdm)

另請參閱

ExInitializeSListHead

ExInterlockedInsertTailList

ExInterlockedPopEntryList

ExInterlockedPushEntrySList

KeInitializeSpinLock

PushEntryList