KsStudio — примеры использования
В этом разделе приведены три примера использования для устранения неполадок с звуком WDM с помощью служебной программы KSStudio. Дополнительные сведения см. в разделе KSStudio Utility.
Пример 1. Звук не работает
Сценарий:
Разработчик устанавливает драйвер аудиоустройства, но приложение проигрывателя (например, Медиаплеер Windows) указывает, что звуковое устройство недоступно.
Устранение неполадок:
Отображается ли устройство в диспетчере устройств? Если да, перейдите к шагу (2), в противном случае возникла проблема с INF-файлом, используемым для установки устройства.
Имеет ли устройство желтый восклицательный знак? Если да, устройство не было успешно установлено (просмотрите свойства устройства для получения дополнительных сведений), еще шаг goto (3).
Запустите KSStudio. Перечисление фильтров класса KSCATEGORY_AUDIO и KSCATEGORY_AUDIO_DEVICE. Отображаются ли (es) фильтры, соответствующие звуковому устройству, в KSCATEGORY_AUDIO? Если да, goto (4), в противном случае фабрика фильтров не зарегистрирована правильно. Наиболее распространенной причиной этого является несоответствие между GUID XXX в INF-файле и GUID XXX в исходном коде фильтра.
KSCATEGORY_AUDIO_DEVICE фильтры — это виртуальные фильтры, представляющие части встроенного системой звукового графа. Дополнительные сведения см. в разделе "Компоненты звука WDM в режиме ядра" и виртуальные звуковые устройства. Как правило, эти виртуальные фильтры представляют собой доступ к API более высокого уровня.
Существует ли фабрика виртуальных фильтров, соответствующая приведенному выше упоминание _AUDIO фабрике фильтров (это будет очевидно, если они делают)? Если да, перейдите к (5), в противном случае драйвер имеет проблему, из-за чего sysaudio отклонить его. Создайте экземпляр соответствующего устройства _AUDIO. Это приведет к профилю фильтра KSStudio. Найдите ошибки (красный текст) в окнах ведения журнала. Проверьте фильтр в представлении "Экземпляры объектов". Сравните с фильтром (возможно, один из примеров драйверов DDK или один из другого производителя), который работает.
- Запустите mmsys.cpl и просмотрите, отображаются ли какие-либо устройства, соответствующие фильтру в процессе разработки. Это представление устройства через API MMSystem. Если здесь нет устройства, то есть что-то своеобразное о устройстве, которое вызвало MMSystem отклонить его. Вернитесь к KSStudio и создайте экземпляр фабрики виртуальных фильтров KSCATEGORY_AUDIO_DEVICE, соответствующей устройству. Найдите ошибки (красный текст) в окнах ведения журнала. Проверьте фильтр в представлении "Экземпляры объектов". Сравните с фильтром (возможно, один из примеров звуковых драйверов WDK или один из другого производителя), который работает.
Пример 2. Линии миксера звука отсутствуют
Сценарий:
Установлено звуковое устройство. Одна или несколько ожидаемых линий миксера отсутствуют в SndVol32 (или другом приложении миксера)
Устранение неполадок:
Правильно ли выглядит топология фильтра в KSStudio? Запустите KSStudio и перечислите KSCATEGORY_AUDIO. Создайте экземпляр фильтра топологии и выберите параметр View Nodes в представлении топологии объектов. Правильно ли выглядит топология фильтра? Если это так, повторите для соответствующего фильтра KSCATEGORY_AUDIO_DEVICE. Если эта топология выглядит разумной, перейдите (2), то в фильтре топологии возникает некоторая проблема, которая предотвращает выражение топологии для компонентов выше в звуковом стеке. Дополнительные сведения о том, как топология фильтров преобразуется в линии миксера, см. в документации по DDK.
Отображаются ли линии миксера как ожидалось в MixApp? MixApp — это очень простое, но полезное приложение пакета SDK для Windows. Если линии миксера выглядят правильно в MixApp, но не в проблемном приложении миксера, приведенном ранее, скорее всего, ошибка приложения.
Пример 3. Элементы управления микшера звука отсутствуют или не работают
Сценарий:
Элементы управления mixer (API миксера MMSystem) либо не отображаются, либо не работают в SndVol32 или другом приложении микшера.
Устранение неполадок:
Просмотрите инструкции по устранению неполадок в примере 2 выше.
Поддерживает ли аппаратное событие в KSStudio? Найдите узел или закрепить, поддерживающий событие KSEVENT_CONTROL_CHANGE, и включите его, как описано в KSStudio — KSProperties и Events. Переключение аппаратных элементов управления. Это должно привести к вспышке значка лампочки события.
См. также
KSStudio — фильтры и фабрики фильтров