SCATTER_GATHER_LIST structure (wdm.h)

The SCATTER_GATHER_LIST structure describes the scatter/gather list for a DMA operation.

Syntax

typedef struct _SCATTER_GATHER_LIST {
  ULONG                  NumberOfElements;
  ULONG_PTR              Reserved;
  SCATTER_GATHER_ELEMENT Elements[];
} SCATTER_GATHER_LIST, *PSCATTER_GATHER_LIST;

Members

NumberOfElements

Specifies the number of elements in the Elements array.

Reserved

Reserved for future use.

Elements

Specifies an array of scatter/gather elements that comprise a scatter/gather list. Each array element is a structure of type SCATTER_GATHER_ELEMENT, which is defined as follows:

typedef struct _SCATTER_GATHER_ELEMENT {
  PHYSICAL_ADDRESS  Address;
  ULONG  Length;
  ULONG_PTR  Reserved;
} SCATTER_GATHER_ELEMENT, *PSCATTER_GATHER_ELEMENT;

The SCATTER_GATHER_ELEMENT structure specifies the length, in bytes, of a physically contiguous scatter/gather region and the starting physical address of this region.

Remarks

For a driver that performs scatter/gather DMA, the GetScatterGatherList or BuildScatterGatherList routine creates a scatter/gather list and passes this list to the driver's AdapterListControl routine. This scatter/gather list consists of a SCATTER_GATHER_LIST structure that is immediately followed in memory by a SCATTER_GATHER_ELEMENT array. The number of elements in this array is specified by the NumberOfElements member of the SCATTER_GATHER_LIST structure.

For more information about scatter/gather lists, see Using Scatter/Gather DMA.

Requirements

Requirement Value
Header wdm.h (include Wdm.h, Ntddk.h, Ntifs.h)

See also

AdapterListControl

BuildScatterGatherList

GetScatterGatherList