ExAllocateFromLookasideListEx 例程會從指定的 lookaside 清單中移除第一個專案,或者,如果清單是空的,則會動態配置新項目的記憶體。
語法
PVOID ExAllocateFromLookasideListEx(
[in, out] PLOOKASIDE_LIST_EX Lookaside
);
參數
[in, out] Lookaside
描述外觀清單之 LOOKASIDE_LIST_EX 結構的指標。 此結構先前由 exInitializeLookasideListEx 例程初始化。
傳回值
ExAllocateFromLookasideListEx 會傳回 lookaside 列表專案的指標,如果清單中有專案,或可以動態配置。 否則,這個例程會傳回 NULL 。
言論
謹慎
從 Windows 11 版本 22H2 開始,此函式已從內嵌變更為匯出。 因此,如果您建置以最新版 Windows 為目標的驅動程式,它將無法在舊版作系統中載入。 若要在 Visual Studio 中變更目標 OS 版本,請選取 [組態屬性->驅動程式設定->[一般]。
如果專案可用,此例程會從指定的外觀清單中移除第一個專案,並傳回這個專案的指標。 如果清單是空的,例程會為新專案配置記憶體,並傳回這個專案的指標。 如果此設定失敗,例程會傳回 NULL。
如果 lookaside 列表是空的,ExAllocateFromLookasideListEx 會呼叫 LookasideListAllocateEx 例程來配置新專案的記憶體,如果驅動程式已提供這類例程。 否則,會使用預設配置例程來配置專案。
呼叫端使用 專案完成之後,應該呼叫 ExFreeToLookasideListEx 例程來釋放專案。
在目前的實作中,lookaside 清單會以最後先出 (LIFO) 堆疊的形式運作。 因此,要釋放的最後一個專案(並推送至堆棧)是從清單中配置(快顯)的下一個專案。
如需 lookaside 列表的詳細資訊,請參閱使用 Lookaside 清單 。
要求
要求 | 價值 |
---|---|
最低支援的用戶端 | 適用於 Windows Vista 和更新版本的 Windows。 |
目標平臺 | 桌面 |
標頭 | wdm.h (包括 Wdm.h、Ntddk.h、Ntifs.h) |
連結庫 | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= DISPATCH_LEVEL |