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


Предотвращение копирования данных

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

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

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

Кроме того, если вашему устройству требуется аудиоформат с порядком каналов, несовместимым со стандартными аудиоформатами WDM, драйверу может потребоваться выполнить преобразование на месте каждого звукового кадра в промежуточном буфере, прежде чем оборудование сможет обработать его. Это может снизить производительность. Дополнительные сведения см. в разделе Несколько каналов звуковых данных и WAVE-файлы.