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


Многофункциональные звуковые устройства

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

Драйвер порта WavePci в PortCls предъявляет особые требования к многофункциональным устройствам. В частности, драйвер адаптера должен предоставлять способ настройки каждого подчиненного устройства, чтобы управлять им независимо от других вложенных устройств в многофункциональном устройстве. Это можно сделать, настроив пространство конфигурации PCI для многофункционального устройства одним из двух способов:

  1. Предпочтительный способ — назначить отдельный идентификатор устройства каждому логическому отделу на многофункциональном устройстве. Например, если многофункциональное устройство содержит подустройства модема, звука и джойстика, система должна быть в состоянии представить каждую часть в виде независимого devnode в дереве устройств. Подраздел, представленный каждым идентификатором устройства, имеет собственный набор регистров конфигурации PCI и является ортогональным и не зависит от других вложенных дефисов. Например, включение или отключение одного дочернего элемента (например, аудиоподключения) не должно влиять на любую другую подсеть (например, модем). Этот тип многофункционального устройства не требует специальной поддержки драйверов для конкретного оборудования, кроме собственных драйверов для самих вложенных служб.

  2. Второй способ разработки многофункционального устройства — назначить одному идентификатору устройства в целом и предоставить отдельные регистры базовых адресов (BAR) PCI для отдельных дочерних отделов. В этой схеме дочерние службы совместно используют общий набор регистров конфигурации, но у каждого подчиненного есть собственный bar или BAR. Системный многофункциональный драйвер (например, Mf.sys в Microsoft Windows 2000 и более поздних версиях; см. раздел Использование драйвера System-Supplied многофункциональной шины) может настроить базовый адрес для каждого подчиненного состояния, команды и регистра данных независимо от регистров для других функций. Если BAR вашего устройства логически не отделяются по подразделам, вы не сможете использовать PortCls для управления устройством.

В оставшейся части этого раздела описываются шаги, необходимые для реализации подхода (2) из предыдущего списка. Рассматриваются следующие темы:

Несколько вложенных аудиоустройств

Ограничения многофункциональных устройств