Number Of Map Registers


I know that MapTransfer is used to find contiguous segments of the DMA buffer.
But in source codes of packet-based DMA transfer with no scather/gather support, only length of the transfer and map registers are checked to tranfer in one stage.

I mean, if one contiguous segment is larger than number of map registers that is provided by IoGetDmaAdapter, so does another call to MapTransfer return remaining part in the same segment or another part of memory that is contigous?

Or IoGetDmaAdapter first finds the first contiguous segment and returns equivalant number of map registers to represent contiguous segment so there can’t be such a stiuation?? I don’t understand the relationship between MapTransfer, map registers and continous block of memory?