共用方式為


NdisRetreatNetBufferListDataStart 函式 (ndis/nblapi.h)

呼叫 NdisRetreatNetBufferListDataStart 函式,以增加 NET_BUFFER_LIST 結構中所有 NET_BUFFER 結構 使用的 數據空間。

語法

NDIS_EXPORTED_ROUTINE NDIS_STATUS NdisRetreatNetBufferListDataStart(
  [in]           NET_BUFFER_LIST         *NetBufferList,
  [in]           ULONG                   DataOffsetDelta,
  [in]           ULONG                   DataBackFill,
  [in, optional] NET_BUFFER_ALLOCATE_MDL *AllocateMdlHandler,
  [in, optional] NET_BUFFER_FREE_MDL     *FreeMdlHandler
);

參數

[in] NetBufferList

先前配置之NET_BUFFER_LIST結構的指標。

[in] DataOffsetDelta

每個NET_BUFFER結構 額外 使用的數據空間量。 如果沒有足夠的 未使用的數據空間 來滿足要求,NDIS 會配置更多記憶體。

[in] DataBackFill

如果 NDIS 必須配置記憶體,這個參數除了要配置 DataOffsetDelta 的值之外,還要指定數據空間量 參數。

[in, optional] AllocateMdlHandler

NetAllocateMdl 函式的選擇性進入點。 如果呼叫端指定 netAllocateMdl 函式 進入點,NDIS 會呼叫 netAllocateMdl 來配置 MDL 和記憶體。

[in, optional] FreeMdlHandler

NetFreeMdl 函式的選擇性進入點。 如果呼叫端指定 NetFreeMdl 函式的進入點,NDIS 會呼叫 NetFreeMdl 釋放 MDL 和記憶體。

傳回值

NdisRetreatNetBufferListDataStart 會傳回下列其中一項:

傳回碼 描述
NDIS_STATUS_SUCCESS
NdisRetreatNetBufferListDataStart 藉由減少 DataOffset 成員的值,或配置新的記憶體,成功地在所有NET_BUFFER結構上配置數據空間。
NDIS_STATUS_RESOURCES
NdisRetreatNetBufferListDataStart 因為資源不足而失敗。
NDIS_STATUS_FAILURE
NdisRetreatNetBufferListDataStart 因資源不足的原因而失敗。

言論

呼叫 NdisRetreatNetBufferListDataStart 相當於呼叫 NdisRetreatNetBufferDataStart 函式,適用於 NET_BUFFER_LIST 結構上每個 NET_BUFFER 結構。 NdisRetreatNetBufferListDataStart 會藉由減少每個NET_BUFFER結構中 DataOffset 成員的值,來嘗試滿足要求。 如果沒有足夠的 未使用的數據空間 可用,此函式會配置新的緩衝區和 MDL,然後將新的 MDL 鏈結至NET_BUFFER結構上的 MDL 鏈結開頭。

呼叫 NdisAdvanceNetBufferListDataStart 函式,以釋放先前 NdisRetreatNetBufferListDataStart 呼叫中所宣告的數據空間。 或者,驅動程式可以呼叫 NdisAdvanceNetBufferDataStart 函式,適用於NET_BUFFER_LIST結構上每個NET_BUFFER結構。 呼叫 NdisAdvanceNetBufferListDataStart 更有效率。

要求

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

另請參閱

NET_BUFFER

NET_BUFFER_LIST

NdisAdvanceNetBufferDataStart NdisAdvanceNetBufferListDataStart NdisRetreatNetBufferDataStart

NetAllocateMdl

NetFreeMdl