Создание драйвера адаптера
Поддержка драйвера для определенного звукового адаптера карта принимает форму драйвера адаптера. Драйвер адаптера состоит из следующих компонентов:
Общий код адаптера, выполняющий запуск и инициализацию драйвера и реализующий все операции, общие для всех звуковых функций на адаптере карта.
Набор драйверов мини-портов, которые управляют определенными звуковыми функциями на адаптере карта.
Поставщик оборудования предоставляет как общий код адаптера, так и код для всех драйверов мини-портов, которые не предоставляются системой.
Пример общего кода адаптера см. в реализации интерфейса CAdapterCommon в примере драйвера Sysvad, который рассматривается в разделе Примеры аудиодрайверов.
Используя многоуровневый подход, поставщик может написать драйвер адаптера, который работает на одном из нескольких уровней в зависимости от аппаратной функциональности адаптера. При определении уровня поддержки, необходимого для конкретной аппаратной функции, поставщик должен сначала определить, существует ли уже предоставляемый системой драйвер мини-порта, поддерживающий функцию (см. список системных драйверов мини-портов функции PcNewMiniport ). В противном случае поставщик должен реализовать собственный драйвер мини-порта, но может по-прежнему использовать один из драйверов портов, предоставляемых системой (см. список системных драйверов портов функции PcNewPort ).
Чтобы реализовать поддержку WDM для устройства, выполните следующие действия.
Если системный драйвер мини-порта уже поддерживает аппаратную функцию, используйте существующий драйвер мини-порта для управления функцией.
Если аппаратная функция несовместима с системным драйвером мини-порта, определите, совместима ли функция хотя бы с одним из драйверов портов, предоставляемых системой. Если драйвер порта, предоставляемый системой, поддерживает аппаратную функцию, напишите часть драйвера мини-порта, который управляет функцией. Этот драйвер мини-порта должен соответствовать спецификации для интерфейса мини-порта, который ожидает драйвер порта-владельце.
Если ни системный драйвер порта не поддерживает аппаратную функцию, напишите мини-диск для поддержки функции. Мини-диск должен соответствовать спецификации интерфейса для драйвера класса потоковой передачи.
В этом разделе рассматриваются следующие темы: