KsStudio — примеры использования

В этом разделе приведены три примера использования для устранения неполадок с звуком WDM с помощью служебной программы KSStudio. Дополнительные сведения см. в разделе KSStudio Utility.

Пример 1. Звук не работает

Сценарий:

Разработчик устанавливает драйвер аудиоустройства, но приложение проигрывателя (например, проигрыватель Windows Media) указывает, что звуковое устройство недоступно.

Устранение неполадок.

  1. Отображается ли устройство в диспетчере устройств? Если да, перейдите к шагу (2), в противном случае возникла проблема с INF-файлом, используемым для установки устройства.

  2. Имеет ли устройство желтый восклицательный знак? Если да, устройство не было успешно установлено (просмотрите свойства устройства для получения дополнительных сведений), иначе перейдите к шагу (3).

  3. Запустите KSStudio. Перечисление фильтров класса KSCATEGORY_AUDIO и KSCATEGORY_AUDIO_DEVICE. Отображаются ли (es) фильтры, соответствующие звуковому устройству, в KSCATEGORY_AUDIO? Если да, goto (4), в противном случае фабрика фильтров не зарегистрирована правильно. Наиболее распространенной причиной этого является несоответствие между GUID XXX в INF-файле и GUID XXX в исходном коде фильтра.

  4. Фильтры KSCATEGORY_AUDIO_DEVICE являются виртуальными фильтрами, представляющими части системного встроенного звукового графа. Дополнительные сведения см. в разделеKernel-Mode компоненты звука WDM и виртуальные звуковые устройства. Как правило, эти виртуальные фильтры представляют собой доступ к API более высокого уровня.

Существует ли фабрика виртуальных фильтров, соответствующая упомянутой выше фабрике фильтров _AUDIO (это будет очевидно, если они существуют)? Если да, перейдите к (5), в противном случае у драйвера есть проблема, из-за чего sysaudio отклонил его. Создайте экземпляр соответствующего устройства _AUDIO. Это приведет к профилированию фильтра в KSStudio. Найдите ошибки (красный текст) в окнах ведения журнала. Проверьте фильтр в представлении "Инстанцированные объекты". Сравните с фильтром (возможно, один из примеров драйверов DDK или один из другого производителя), который работает.

  1. Запустите mmsys.cpl и просмотрите, отображаются ли какие-либо устройства, соответствующие фильтру в процессе разработки. Это представление устройства через API MMSystem. Если здесь нет устройства, то есть что-то своеобразное с устройством, что заставило MMSystem отклонить его. Вернитесь к KSStudio и создайте экземпляр фабрики виртуальных фильтров KSCATEGORY_AUDIO_DEVICE, соответствующей устройству. Найдите ошибки (красный текст) в окнах ведения журнала. Проверьте фильтр в представлении "Экземпляры объектов". Сравните с фильтром (возможно, один из примеров звуковых драйверов WDK или один из другого производителя), который работает.

Пример 2. Линии миксера звука отсутствуют

Сценарий:

Установлено звуковое устройство. Одна или несколько ожидаемых линий миксера отсутствуют в SndVol32 (или другом приложении миксера)

Устранение неполадок.

  1. Правильно ли выглядит топология фильтра в KSStudio? Запустите KSStudio и перечислите KSCATEGORY_AUDIO. Создайте экземпляр фильтра топологии и выберите параметр "Просмотр узлов" в представлении топологии объекта. Правильно ли выглядит топология фильтра? Если это так, повторите для соответствующего фильтра KSCATEGORY_AUDIO_DEVICE. Если эта топология выглядит разумной, перейдите к (2), иначе в вашем фильтре топологии возникает какая-то проблема, которая препятствует передаче топологии на компоненты, находящиеся выше в звуковом стеке. Дополнительные сведения о том, как топология фильтров преобразуется в линии миксера, см. в документации по DDK.

  2. Отображаются ли линии миксера как ожидалось в MixApp? MixApp — это очень простое, но полезное приложение пакета SDK для Windows. Если линии миксера выглядят правильно в MixApp, но не в проблемном приложении миксера, приведенном ранее, скорее всего, ошибка приложения.

Пример 3. Элементы управления микшера звука отсутствуют или не работают

Сценарий:

Элементы управления mixer (API миксера MMSystem) либо не отображаются, либо не работают в SndVol32 или другом приложении микшера.

Устранение неполадок.

  1. Просмотрите инструкции по устранению неполадок в примере 2 выше.

  2. Похоже, что поддержка аппаратных событий работает в KSStudio? Найдите узел или пин, поддерживающий событие KSEVENT_CONTROL_CHANGE, и активируйте его, как описано в KSStudio — KSProperties и событий. Переключите аппаратные элементы управления. Это должно привести к миганию значка лампочки события.

См. также

Утилита KSStudio

KSStudio — фильтры и фабрики фильтров

KSStudio — Пины и узлы

KSStudio — KSProperties и Events

KSStudio — монитор KS