Transazioni DMA e trasferimenti DMA

[Si applica solo a KMDF]

Per comprendere in che modo il framework gestisce le operazioni DMA in modalità bus e di sistema, è necessario conoscere i due termini seguenti:

Transazione DMA
Una transazione DMA è un'operazione di I/O completa, ad esempio una singola richiesta di lettura o scrittura da un'applicazione.

Trasferimento DMA
Un trasferimento DMA è una singola operazione hardware che trasferisce i dati dalla memoria del computer a un dispositivo o dal dispositivo alla memoria del computer.

Una singola transazione DMA è sempre costituita da almeno un trasferimento DMA, ma una transazione può essere costituita da molti trasferimenti.

Quando un driver basato su framework riceve una richiesta di I/O, il driver crea in genere un singolo oggetto transazione DMA per rappresentare la richiesta. Quando il framework inizia a gestire la transazione, determina se il dispositivo può gestire l'intera transazione in un singolo trasferimento. Se la transazione è troppo grande, il framework suddivide la transazione in più trasferimenti.