New Scatter/Gather DMA Support
Unlike previous versions of NDIS, NDIS 6.0 passes a send packet to a miniport driver before the packet is mapped for a DMA transfer. After it has obtained the packet, the miniport driver can request NDIS to supply a scatter/gather list for the packet.
This provides the following benefits:
Because a miniport driver has access to the packet before it is mapped, any changes that the miniport driver makes to the packet are reflected in the associated scatter/gather list data.
A miniport driver can optimize the transmission of small or highly fragmented packets by copying them to a preallocated buffer, thereby eliminating the need for mapping. This eliminates unnecessary processing.
NDIS can safely pass multiple NET_BUFFER structures to the miniport driver in one function call. This results in fewer calls to the miniport driver and thus improves system performance.
Because a miniport driver can preallocate memory for a scatter/gather list, NDIS does not have to allocate memory for the scatter/gather list at run time.
For more information about NDIS 6.0 scatter/gather DMA, see NDIS 6.0 Scatter/Gather DMA.