Конструкция драйвера адаптера

Поддержка драйвера для конкретной аудиоадаптерной карты имеет форму драйвера адаптера. Драйвер адаптера состоит из следующих элементов:

  • Общий код адаптера, который выполняет запуск и инициализацию драйвера, и реализует все операции, которые являются общими для всех звуковых функций на карточке адаптера.

  • Набор драйверов минипорта, которые управляют определенными звуковыми функциями на карточке адаптера.

Поставщик оборудования предоставляет код общего адаптера и код для любых драйверов мини-порта, которые не предоставляются системой.

Пример кода общего адаптера см. в реализации интерфейса CAdapterCommon в примере драйвера Sysvad, который рассматривается в примерах звуковых драйверов.

Используя многоуровневый подход, поставщик может написать драйвер адаптера, который работает на одном из нескольких уровней в зависимости от аппаратной функциональности адаптера. При определении уровня поддержки, требуемой данной аппаратной функцией, поставщик должен сначала определить, существует ли системный минипорт-драйвер, поддерживающий функцию (см. список системных минипорт-драйверов pcNewMiniport ). В противном случае поставщик должен реализовать собственный драйвер минипорта, но может по-прежнему использовать один из системных драйверов портов (см. список системных драйверов портов PcNewPort ).

Чтобы реализовать поддержку WDM для устройства, выполните следующие действия.

  1. Если предоставленный системой минипорт-драйвер уже поддерживает функцию оборудования, используйте существующий драйвер минипорта для управления функцией.

  2. Если аппаратная функция несовместима с системным мини-драйвером, то определите, совместима ли функция с по крайней мере одним из системных драйверов портов. Если драйвер порта, предоставленный системой, поддерживает аппаратную функцию, напишите часть мини-порта драйвера, который управляет функцией. Этот минипорт-драйвер должен соответствовать спецификации минипорт-интерфейса, ожидаемого драйвером порта.

  3. Если драйвер порта, предоставленный системой, не поддерживает функцию оборудования, напишите минидрайвер для поддержки этой функции. Минидрайвер должен соответствовать спецификации интерфейса для драйвера потокового класса.

В этом разделе рассматриваются следующие разделы:

Последовательность запуска

Создание подустройства