A NET_BUFFER_LIST structure packages a linked list of NET_BUFFER structures.
The following figure shows the fields in a NET_BUFFER_LIST structure.
The NET_BUFFER_LIST structure includes a NET_BUFFER_LIST_HEADER structure in the NetBufferListHeader member. The NET_BUFFER_LIST_HEADER structure includes a NET_BUFFER_LIST_DATA structure in the NetBufferListData member. You should use NDIS macros to access NET_BUFFER_LIST structure members. For more information about these macros, see the NET_BUFFER_LIST structure reference page.
Some of the members are only used by NDIS. The members that drivers are most likely to use are defined in the following list:
If a NET_BUFFER_LIST structure is a child that was derived from a parent(cloned, fragmented, or reassembled), ParentNetBufferList specifies a pointer to the parent NET_BUFFER_LIST structure. Otherwise, this parameter is NULL.
Specifies a pool handle that identifies the NET_BUFFER_LIST pool from which the NET_BUFFER_LIST structure was allocated.
Reserved for use by protocol drivers.
Reserved for use by miniport drivers.
A handle that NDIS provided to the driver in a binding or attaching operation by using one of the following driver-supplied routines:
- Miniport Driver
- Protocol Driver
- Filter Driver
NDIS uses SourceHandle to return the NET_BUFFER_LIST structure to the driver that sent the NET_BUFFER_LIST structure. NDIS drivers should not read this handle.
If a NET_BUFFER_LIST structure is a parent (has children derived by clone, fragment, or reassemble operations), ChildRefCount specifies the number of existing children. Otherwise, this parameter is zero.
Reserved for future specification of attributes for the NET_BUFFER_LIST structure. There are currently no flags available to drivers.
Specifies the final completion status of a network data operation for this NET_BUFFER_LIST structure. Miniport drivers write this value before completing a send operation.
Specifies a pointer to the next NET_BUFFER_LIST structure in a linked list of NET_BUFFER_LIST structures. If a NET_BUFFER_LIST structure is the last structure in the list, this member is NULL.
Specifies a pointer to the first NET_BUFFER structure in a linked list of NET_BUFFER structures that is associated with this NET_BUFFER_LIST structure.