Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
NDIS provides functions that drivers can use to manage NET_BUFFER_LIST structures that are derived from other NET_BUFFER_LIST structures. These functions are typically used by intermediate drivers.
The following NDIS functions can create derived NET_BUFFER_LIST structures from an existing NET_BUFFER_LIST structure:
NdisAllocateCloneNetBufferList
NdisAllocateFragmentNetBufferList
NdisAllocateReassembledNetBufferList
These functions improve system performance because NDIS creates the derived structures without copying the network data. There are three types of NET_BUFFER_LIST structures that can be derived from an existing NET_BUFFER_LIST structure:
Clone
A cloned NET_BUFFER_LIST structure is a duplicate that references the original data. Drivers can use this type of structure to efficiently transfer the same data to multiple paths.
Fragment
A fragment NET_BUFFER_LIST structure includes a set of NET_BUFFER structures that reference the original data; however, the data is divided into units that do not exceed a maximum size. Drivers can use this type of structure to efficiently break up large buffers into smaller buffers.
Reassembled
A reassembled NET_BUFFER_LIST structure contains a NET_BUFFER structure that references the original data from multiple source NET_BUFFER structures. Drivers can use this type of structure to efficiently combine many smaller buffers into a single large buffer.
This following topics provide more information about derived NET_BUFFER_LIST structures: