DMA Transactions and DMA Transfers

[Applies to KMDF only]

To understand how the framework handles bus-master and system-mode DMA operations, you must know the following two terms:

DMA transaction
A DMA transaction is a complete I/O operation, such as a single read or write request from an application.

DMA transfer
A DMA transfer is a single hardware operation that transfers data from computer memory to a device or from the device to computer memory.

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.