共用方式為


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 會使用此標籤來配置NET_BUFFER_LIST_CONTEXT結構的記憶體。 標記是以單引號分隔的字串,通常以反轉順序指定最多四個字元。 核心集區標籤可協助 NDIS 識別記憶體的擁有者。

傳回值

NdisAllocateNetBufferListContext 會傳回下列其中一項:

傳回碼 描述
NDIS_STATUS_SUCCESS
NdisAllocateNetBufferListContext 成功配置的內容空間,方法是減少NET_BUFFER_LIST_CONTEXT結構 Offset 成員的值,或配置新的記憶體。
NDIS_STATUS_RESOURCES
NdisAllocateNetBufferListContext 因為資源不足而失敗。
NDIS_STATUS_FAILURE
NdisAllocateNetBufferListContext 因為資源不足的原因而失敗。

言論

如果 NET_BUFFER_LIST_CONTEXT 結構中有足夠的可用內容空間來滿足要求,NdisAllocateNetBufferListContext 只會減少NET_BUFFER_LIST_CONTEXT結構中 Offset 成員的值。 否則,NDIS 會為內容空間配置新的記憶體。 您可以指定 ContextBackFill 來配置額外的記憶體,讓下一次呼叫 NdisAllocateNetBufferListContext 不需要配置記憶體。

附注 內容空間一律會對齊 'sizeof(void*)'。 這適用於所有自然類型的適當對齊方式,但不適合具有異常對齊需求的數據類型,例如SLIST_ENTRY。

呼叫 NdisFreeNetBufferListContext 函式,以釋放配置 NdisAllocateNetBufferListContext之NET_BUFFER_LIST_CONTEXT結構中的內容空間。

要求

要求 價值
最低支援的用戶端 NDIS 6.0 和更新版本支援。
目標平臺 普遍
標頭 ndis/nblapi.h (include ndis.h)
連結庫 Ndis.lib
IRQL <= DISPATCH_LEVEL
DDI 合規性規則 Irql_NetBuffer_Function(ndis)

另請參閱

NET_BUFFER_LIST

NET_BUFFER_LIST_CONTEXT

NdisFreeNetBufferListContext