Поделиться через


Транзакции DMA и передача DMA

[Применяется только к KMDF]

Чтобы понять, как платформа обрабатывает операции master шин и системного режима DMA, необходимо знать два следующих термина:

Транзакция DMA
Транзакция DMA — это полная операция ввода-вывода, например один запрос на чтение или запись от приложения.

Передача DMA
Передача DMA — это одна аппаратная операция, которая передает данные из памяти компьютера на устройство или из устройства в память компьютера.

Одна транзакция DMA всегда состоит по крайней мере из одной передачи DMA, но транзакция может состоять из нескольких передач.

Когда драйвер на основе платформы получает запрос ввода-вывода, драйвер обычно создает один объект транзакции DMA для представления запроса. Когда платформа начинает обслуживать транзакцию, она определяет, может ли устройство обрабатывать всю транзакцию за одну передачу. Если транзакция слишком велика, платформа разбивает транзакцию на несколько передач.