NdisInitializeNPagedLookasideList 函式 (ndis.h)
NdisInitializeNPagedLookasideList 函式會初始化 lookaside 列表。 成功初始化之後,可以將非分頁的固定大社區塊從 配置並釋放到 lookaside 清單。
語法
void NdisInitializeNPagedLookasideList(
[in] PNPAGED_LOOKASIDE_LIST Lookaside,
[in, optional] PALLOCATE_FUNCTION Allocate,
[in, optional] PFREE_FUNCTION Free,
[in] ULONG Flags,
[in] SIZE_T Size,
[in] ULONG Tag,
[in] USHORT Depth
);
參數
[in] Lookaside
NPAGED_LOOKASIDE_LIST 結構的指標,其中包含要初始化之呼叫端提供的外觀清單標頭。 結構必須在64位平臺上對齊16位元組。 驅動程式必須提供位於非分頁系統空間中的清單標頭。
[in, optional] Allocate
函式進入點,NULL,或指定呼叫端提供的 配置 函式的進入點,該函式會在呼叫時配置 Size 成員中指定的專案。 如果 設定NULL, NdisAllocateFromNPagedLookasideList 函式會代表呼叫端配置專案。 如果呼叫端提供 Allocate 函式,它也必須提供免費 函式。
[in, optional] Free
函式進入點,NULL,或指定呼叫端提供的 Free 函式的進入點,每當呼叫時,就會釋放 Size 成員中指定的大小專案。 如果 FreeNULL, NdisFreeToNPagedLookasideList 函式會代表呼叫端釋放專案。
[in] Flags
必須是零。 這個參數是保留的。
[in] Size
要從 lookaside 清單中後續配置之每個專案的大小,以位元組為單位。
[in] Tag
查詢清單專案的呼叫端提供的集區標籤。 Tag 是四個字元的字串,以單引號分隔(例如'derF')。 字元通常會以反向順序指定,以便在調試程式中傾印集區或追蹤集區使用量時更容易讀取。
[in] Depth
必須是零。 此參數也是保留的。
傳回值
沒有
言論
NdisInitializeNPagedLookasideList 初始化呼叫端提供的清單標頭,但不會配置清單專案的記憶體。 初始項目會視需要配置,並呼叫 NdisAllocateFromNPagedLookasideList 函式,或由驅動程式提供的 配置 回呼函式,在 Allocate 參數。 此清單會填入,因為驅動程式會使用 將專案釋放回清單 NdisFreeToNPagedLookasideList 函式。 專案會收集到清單上,直到達到系統決定但動態大小的限制為止。 然後,lookaside 清單中的任何剩餘專案會由 NdisFreeToNPagedLookasideList 傳回至非分頁集區,或在 Free 參數呼叫驅動程式 提供的免費 回呼函式。
lookaside 清單中的所有專案的大小都相同,這會在 Size 參數中指定。 外觀清單特別適用於驅動程式,這些驅動程式必須動態配置和釋放固定大小的內容區域,以維護其未完成 I/O 作業的運行時間狀態。 例如,連線導向的NDIS驅動程式可能會尋找外觀清單特別有用,因為這類驅動程式通常會維護一組動態內容區域來追蹤傳出和來電。
讓驅動程式更有效率地允許 NdisAllocateFromNPagedLookasideList 和 NdisFreeToNPagedLookasideList 函式來管理專案的配置和解除分配(請參閱 ExAllocatePoolWithTag 和 ExFreePool 函式)。 不過,在內部追蹤其記憶體使用量狀態的驅動程式可能會提供 配置 和 免費 函式,以 NdisInitializeNPagedLookasideList。
NdisInitializeNPagedLookasideList 的呼叫者必須在 IRQL <= DISPATCH_LEVEL 執行,但通常是在PASSIVE_LEVEL執行。
要求
要求 | 價值 |
---|---|
最低支援的用戶端 | 支援 NDIS 6.0 和 NDIS 5.1 驅動程式(請參閱 Windows Vista 中的 NdisInitializeNPagedLookasideList (NDIS 5.1)。 支援 NDIS 5.1 驅動程式(請參閱 Windows XP 中的 NdisInitializeNPagedLookasideList (NDIS 5.1)。 |
目標平臺 | 桌面 |
標頭 | ndis.h (包括 Ndis.h) |
IRQL | <= DISPATCH_LEVEL (請參閱一節) |
DDI 合規性規則 | Irql_Miscellaneous_Function(ndis) |