[Applies to KMDF only]
To understand how the framework handles bus-master and system-mode DMA operations, you must know the following two terms:
A single DMA transaction always consists of at least one DMA transfer, but a transaction can consist of many transfers.
When a framework-based driver receives an I/O request, the driver typically creates a single DMA transaction object to represent the request. When the framework begins servicing the transaction, it determines if the device can handle the entire transaction in a single transfer. If the transaction is too large, the framework breaks the transaction into multiple transfers.