NdisAdvanceNetBufferListDataStart function (ndis/nblapi.h)
Call the NdisAdvanceNetBufferListDataStart function to release data space that was claimed in previous calls to the NdisRetreatNetBufferListDataStart function.
Syntax
NDIS_EXPORTED_ROUTINE VOID NdisAdvanceNetBufferListDataStart(
[in] NET_BUFFER_LIST *NetBufferList,
[in] ULONG DataOffsetDelta,
[in] BOOLEAN FreeMdl,
NET_BUFFER_FREE_MDL *FreeMdlMdlHandler
);
Parameters
[in] NetBufferList
A pointer to a previously allocated NET_BUFFER_LIST structure.
[in] DataOffsetDelta
The amount of used data space to release.
[in] FreeMdl
If TRUE and NDIS allocated memory to satisfy the corresponding NdisRetreatNetBufferListDataStart call, this function frees the memory that was allocated and the associated MDL.
FreeMdlMdlHandler
An optional entry point for an NetFreeMdl function. If the caller specifies an entry point for the NetFreeMdl function, NDIS calls NetFreeMdl to free an MDL and memory.
Return value
None
Remarks
NdisAdvanceNetBufferListDataStart releases
used data space for all the
NET_BUFFER structures in a
NET_BUFFER_LIST structure. If
FreeMdl is TRUE and
NdisRetreatNetBufferListDataStart allocated memory to satisfy the corresponding allocation request,
NdisAdvanceNetBufferListDataStart frees the allocated memory. Calling this function is equivalent
to calling
NdisAdvanceNetBufferDataStart for every NET_BUFFER structure on the NET_BUFFER_LIST structure.
However, calling
NdisAdvanceNetBufferListDataStart is more efficient.
When protocol drivers call NdisAdvanceNetBufferListDataStart on the receive path to access the various transport headers, the MDL chain should not be modified and FreeMdl is FALSE.
Requirements
Requirement | Value |
---|---|
Minimum supported client | Supported in NDIS 6.0 and later. |
Target Platform | Universal |
Header | ndis/nblapi.h (include ndis.h) |
Library | Ndis.lib |
IRQL | <= DISPATCH_LEVEL |
DDI compliance rules | Irql_NetBuffer_Function(ndis) |