NET_BUFFER_LIST Structure

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.

Diagram illustrating 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:

ParentNetBufferList
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.

NdisPoolHandle
Specifies a pool handle that identifies the NET_BUFFER_LIST pool from which the NET_BUFFER_LIST structure was allocated.

ProtocolReserved
Reserved for use by protocol drivers.

MiniportReserved
Reserved for use by miniport drivers.

SourceHandle
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
MiniportInitializeEx

Protocol Driver
ProtocolBindAdapterEx

Filter Driver
FilterAttach

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.

ChildRefCount
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.

Flags
Reserved for future specification of attributes for the NET_BUFFER_LIST structure. There are currently no flags available to drivers.

Status
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.

NetBufferListInfo
Specifies NET_BUFFER_LIST structure information that is common to all NET_BUFFER structures in the list. This information is often referred to as "out-of-band (OOB) data."

Next
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.

FirstNetBuffer
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.

Note  Context is a pointer to a NET_BUFFER_LIST_CONTEXT structure. NDIS provides macros and functions to manipulate the data at Context . For more information about the NET_BUFFER_LIST_CONTEXT structure, see NET_BUFFER_LIST_CONTEXT Structure.