The miniport driver passes a DMA description to NdisMRegisterScatterGatherDma in the DmaDescription parameter. NdisMRegisterScatterGatherDma returns a size for the buffer that should be large enough to hold the scatter/gather list. Miniport drivers should use this size to preallocate the storage for scatter/gather lists.
The miniport driver also passes NdisMRegisterScatterGatherDma the entry points for the MiniportXxx functions that NDIS calls to process the scatter/gather list. NDIS calls the miniport driver's MiniportProcessSGList function after HAL has built the scatter/gather list for a buffer. NdisMRegisterScatterGatherDma supplies a handle in the pNdisMiniportDmaHandle parameter, which the miniport driver must use in subsequent calls to NDIS scatter/gather DMA functions.