NdisRetreatNetBufferDataStart (Compact 2013)
3/26/2014
Call this function to access more used data space in the MDL chain of a NET_BUFFER structure.
Syntax
NDIS_STATUS
NdisRetreatNetBufferDataStart(
IN PNET_BUFFER NetBuffer,
IN ULONG DataOffsetDelta,
IN ULONG DataBackFill,
IN NET_BUFFER_ALLOCATE_MDL_HANDLER AllocateMdlHandler OPTIONAL
);
Parameters
- NetBuffer
A pointer to a previously allocated NET_BUFFER structure.
- DataOffsetDelta
The used data space to add. NDIS adjusts the DataOffset member of the NET_BUFFER structure accordingly. If there is not enough unused data space to satisfy the request, NDIS allocates additional memory.
- DataBackFill
If NDIS must allocate memory, this parameter specifies the data space, in addition to the value of the DataOffsetDelta parameter, to allocate.
- AllocateMdlHandler
An optional entry point for an NetAllocateMdl function. If the caller specifies an entry point for the NetAllocateMdl function, NDIS calls NetAllocateMdl to allocate an MDL and memory.
Return Value
NdisRetreatNetBufferDataStart returns one of the following:
Value |
Description |
---|---|
NDIS_STATUS_SUCCESS |
NdisRetreatNetBufferDataStart successfully allocated used data space either by using the unused data space or by allocating new storage. |
NDIS_STATUS_RESOURCES |
NdisRetreatNetBufferDataStart failed because of insufficient resources. |
NDIS_STATUS_FAILURE |
NdisRetreatNetBufferDataStart failed for reasons other than insufficient resources. |
Remarks
NdisRetreatNetBufferDataStart tries to satisfy the request by reducing the value of the DataOffset member of the NET_BUFFER structure.
If there is not enough unused data space, this function allocates a new buffer and an MDL to describe the new buffer and chains the new MDL to the beginning of the MDL chain. NDIS calls the NetAllocateMdl function specified at AllocateMdl to allocate the MDL and memory. The NetAllocateMdl function can use any allocation method that meets the driver's design requirements.
Call the NdisAdvanceNetBufferDataStart function to release the used data space that was added with NdisRetreatNetBufferDataStart.
Requirements
Header |
ndis.h |
See Also
Reference
NDIS NET_BUFFER Functions
NdisAdvanceNetBufferDataStart
NetAllocateMdl
NET_BUFFER