NdisAllocateNetBufferListContext 函式 (ndis/nblapi.h)
呼叫 NdisAllocateNetBufferListContext 函式,在 NET_BUFFER_LIST_CONTEXT 結構中配置更多內容空間
NET_BUFFER_LIST 結構。
語法
NDIS_EXPORTED_ROUTINE NDIS_STATUS NdisAllocateNetBufferListContext(
[in] NET_BUFFER_LIST *NetBufferList,
[in] USHORT ContextSize,
[in] USHORT ContextBackFill,
[in] ULONG PoolTag
);
參數
[in] NetBufferList
先前配置之NET_BUFFER_LIST結構的指標。
[in] ContextSize
要配置於NET_BUFFER_LIST_CONTEXT結構中的內容空間量。 這個數量必須是 所 sizeof(void*)
定義值的倍數。
[in] ContextBackFill
除了 ContextSize 的值之外,要配置的記憶體數量,如果 NDIS 必須配置記憶體以滿足要求,則為配置。 這個數量必須是 所 sizeof(void*)
定義值的倍數。
[in] PoolTag
NDIS 在需要配置時,NDIS 用來為NET_BUFFER_LIST_CONTEXT結構配置記憶體的核心集區卷標。 標記是以單引號分隔的字串,最多四個字元,通常是以反轉順序指定。 核心集區標籤可協助 NDIS 識別記憶體的擁有者。
傳回值
NdisAllocateNetBufferListContext 會傳回下列其中一項:
傳回碼 | Description |
---|---|
|
NdisAllocateNetBufferListContext 藉由減少NET_BUFFER_LIST_CONTEXT結構的 Offset 成員值或配置新的記憶體,成功配置內容空間。 |
|
NdisAllocateNetBufferListContext 因為資源不足而失敗。 |
|
NdisAllocateNetBufferListContext 因資源不足而失敗。 |
備註
如果 NET_BUFFER_LIST_CONTEXT 結構中有足夠未使用的內容空間來滿足要求, NdisAllocateNetBufferListContext 只會減少NET_BUFFER_LIST_CONTEXT結構中 Offset 成員的值。 否則,NDIS 會為內容空間配置新的記憶體。 您可以指定 ContextBackFill 來配置額外的記憶體,讓下一次呼叫 NdisAllocateNetBufferListContext 不需要配置記憶體。
呼叫 NdisFreeNetBufferListContext 函式,以釋放以 NdisAllocateNetBufferListContext 配置之NET_BUFFER_LIST_CONTEXT結構中的內容空間。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | NDIS 6.0 和更新版本支援。 |
目標平台 | Universal |
標頭 | ndis/nblapi.h (包含 ndis.h) |
程式庫 | Ndis.lib |
IRQL | <= DISPATCH_LEVEL |
DDI 合規性規則 | Irql_NetBuffer_Function () |