共用方式為


NdisAdvanceNetBufferDataStart 函式 (ndis/nblapi.h)

呼叫 NdisAdvanceNetBufferDataStart 函式,以釋放使用 新增的數據空間 NdisRetreatNetBufferDataStart 函式。

語法

NDIS_EXPORTED_ROUTINE VOID NdisAdvanceNetBufferDataStart(
  [in]           NET_BUFFER          *NetBuffer,
  [in]           ULONG               DataOffsetDelta,
  [in]           BOOLEAN             FreeMdl,
  [in, optional] NET_BUFFER_FREE_MDL *FreeMdlHandler
);

參數

[in] NetBuffer

先前配置的 NET_BUFFER 結構的指標。

[in] DataOffsetDelta

要釋放 的已使用數據空間 量。 NDIS 會據以調整 NET_BUFFER 結構 之 DataOffset 成員的值。

[in] FreeMdl

BOOLEAN 值,如果 為 TRUE,則要求 NDIS 釋放任何在預先作業中變成未使用的 MDL。 如果 FreeMdlFALSE,NDIS 會保留未使用的 MDL,以供後續的操作使用。

[in, optional] FreeMdlHandler

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

傳回值

備註

如果 NDIS 配置記憶體以滿足對 的對應呼叫 NdisRetreatNetBufferDataStart 函式,然後 NdisAdvanceNetBufferDataStart 釋放 NdisRetreatNetBufferDataStart 配置的記憶體。 否則,記憶體會保留在 MDL 中,而且只會修改 NET_BUFFER 結構的 DataOffset 成員值。

如果 NdisAdvanceNetBufferDataStart 必須釋放記憶體,NDIS 會呼叫 FreeMdl 指定的 NetFreeMdl 函式。 NDIS 只會呼叫 NetFreeMdl ,以釋放驅動程式在 NetAllocateMdl 函式中配置的 MDLs 和記憶體。

當通訊協議驅動程式在接收路徑上呼叫 NdisAdvanceNetBufferDataStart 以存取各種傳輸標頭時,不應該修改 MDL 鏈結, 而且 FreeMdlFALSE

規格需求

需求
最低支援的用戶端 NDIS 6.0 和更新版本支援。
目標平台 Universal
標頭 ndis/nblapi.h (include ndis.h)
程式庫 Ndis.lib
IRQL <= DISPATCH_LEVEL
DDI 合規性規則 Irql_NetBuffer_Function (ndis)

另請參閱

NET_BUFFER

NdisRetreatNetBufferDataStart

NetAllocateMdl

NetFreeMdl