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


Bus-Master DMA в видеодрайверах минипорта

Начиная с Windows XP графический интерфейс операционной системы поддерживает DMA на устройствах master шины PCI. Драйверы видео минипорта для устройств pci bus-master могут реализовать следующие типы поддержки DMA с помощью вспомогательных функций, предоставляемых драйвером видеопорта:

  • DMA на основе пакетов

    В DMA на основе пакетов данные передаются непосредственно между пространством инициатора запроса и устройством. Так как пространство инициатора запроса может не быть непрерывным, DMA на основе пакетов более эффективно работает на этих устройствах с поддержкой аппаратной точечной и сборной. DMA на основе пакетов — это идеальный вариант для перемещения больших объемов произвольных данных между пространством пользователя и устройством.

  • DMA с общим буфером

    В DMA с общим буфером буфер является общим (следовательно, общим для) и используется как узлом, так и устройством для повторяющихся операций DMA. Некоторые драйверы используют DMA с общим буфером для передачи данных, управляемых драйвером, таких как ряд команд, в графический обработчик. Общий буфер является непрерывным и всегда доступен как для устройства, так и для ЦП узла.

    Общий буфер является ценным системным ресурсом. Для повышения общей производительности драйвера и системы драйверы должны использовать DMA с общим буфером как можно экономично.

В зависимости от характера адаптера master шины некоторые драйверы мини-порта используют исключительно DMA на основе пакетов, другие используют только общий буфер DMA, а некоторые используют и то, и другое.

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

В следующих подразделах описывается использование поддержки DMA на основе пакетов и общего буфера, предоставляемой драйвером видеопорта.

DMA на основе пакетов Bus-Master

Common-Buffer Bus-Master DMA

Точки, которые следует учитывать при использовании DMA