exInterlockedInsertHeadList 函式 (wdm.h)
ExInterlockedInsertHeadList 例程會以不可部分完成的方式,在LIST_ENTRY結構的兩次連結清單開頭插入專案。
語法
PLIST_ENTRY ExInterlockedInsertHeadList(
[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 來初始化。 您只能搭配 ExInterlockedXxx 清單 例程使用此微調鎖定。
傳回值
ExInterlockedInsertHeadList 會在插入新專案 之前 ,傳回清單第一個專案的指標。 如果清單是空的,則例程會傳回 NULL。
備註
ExInterlockedInsertHeadList 會執行與 InsertHeadList 相同的作業,但不可部分完成。 請勿在相同的清單上混合不可部分完成和非不可部分完成的呼叫。
如需使用此例程實作雙連結清單的詳細資訊,請參閱Singly和 Doubly Linked 清單。
任何 IRQL 都可以呼叫 ExInterlockedInsertHeadList 例程。 ListHead 參數和清單專案的記憶體必須位於所有 IRCL。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | 從 Windows 2000 開始提供。 |
目標平台 | Universal |
標頭 | 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) |
另請參閱
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應