Drivers may be asked to transfer data from buffers that are not contiguous. In this case, the client buffer may be specified as a MultipleAddressRange scatter-gather list.
A MultipleAddressRange structure specifies an array of AddressRange entries. Its fields have the following meanings:
entryCount | The number of entries in the rangeTable structure. |
rangeTable | The address of an array of AddressRange elements (an AddressRangeTable structure). See the description of AddressRange in PrepareMemoryForIO Data Structures. The specified ranges may overlap. |
The options and addressSpace specifications apply equally to each range.
The granularity, firstPrepared, and lengthPrepared fields apply to the overall buffer. These fields are discussed in Partial Preparation.
The resulting mapping tables concatenate, in order, the mappings for each range.