Проблемы с реализацией устройств WavePci
В этом разделе представлены рекомендации по проектированию оборудования и программного обеспечения, которые поставщики звукового оборудования могут использовать для повышения производительности и надежности своих устройств WavePci. Все эти рекомендации применяются к звуковым устройствам и драйверам, предназначенным для работы с Microsoft Windows XP и более поздних версий, но многие из них также применяются к более ранним версиям Windows, начиная с Windows 98 Second Edition.
Как описано в разделе Фильтры волн, системный драйвер класса портов, Portcls.sys, предоставляет два разных драйвера портов для устройств отрисовки и захвата волн:
WaveCyclic менее требовательна к оборудованию и программному обеспечению, но ее производительность ограничена программными издержками копирования данных между буферами.
WavePci является ориентированной на производительность альтернативой WaveCyclic, но требует более сложного программного обеспечения оборудования и драйверов.
Хотя название WavePci подразумевает аудиоустройство, которое подключается к шине PCI, на самом деле основное требование для устройства WavePci заключается в том, что оно содержит контроллер точечной и сборной DMA, способный получать доступ к данным в любом месте системной памяти:
Типичное устройство WavePci действительно находится на шине PCI, но, теоретически, по крайней мере, драйвер miniport WavePci может быть написан для устройства, которое находится на системной шине, отличной от PCI (например, AGP).
Волновое устройство, которое находится на шине PCI, но не имеет точечной и сборной DMA, может быть представлено драйвером WaveCyclic, но не драйвером WavePci.
Исторически сложилось так, что у некоторых поставщиков были трудности при реализации полностью функциональных устройств WavePci. К двум main проблемным областям относятся:
Недостатки проектирования оборудования, снижающие производительность.
Ошибки реализации драйвера, влияющие на производительность или надежность.
Эти возможности рассматриваются в следующих разделах, в которых рассматриваются основные проблемы проектирования оборудования и программного обеспечения для устройств WavePci:
Требования к оборудованию для устройств WavePci