Свойство категории закрепления

Звуковые драйверы модели Microsoft Windows Driver Model (WDM) для USB-аудио устройств, аудиоустройств IEEE 1394 и аудиоустройств на внутренних шинах представляют свои устройства как фильтры KS с выводами. Звуковой драйвер WDM поддерживает одну KSPIN_DESCRIPTOR структуру для каждого типа пин-кода, который он поддерживает. В этой структуре драйвер сохраняет свойства KSPROPSETID_Pin типа пина. Среди этих свойств является свойство KSPROPERTY_PIN_CATEGORY . Запрос на это свойство извлекает GUID категории пин-кода KS из элемента категорииKSPIN_DESCRIPTOR структуры. Этот GUID указывает общую категорию функциональных возможностей, которые предоставляет пин-код. Например, идентификатор GUID определенной категории контактов, KSNODETYPE_HEADPHONES, обозначает контакт как выходной разъем для наушников.

В случае звукового устройства с поддержкой формата WAV на внутренней шине (например, PCI), драйвер минипорта PortCls содержит массив дескрипторов штырей, каждый из которых описывает тип штыря в фильтре, представляющем устройство. Каждый дескриптор контакта — это структура PCPIN_DESCRIPTOR, содержащая внедренную структуру KSPIN_DESCRIPTOR с GUID категории контакта. При получении клиентского запроса свойства KSPROPERTY_PIN_CATEGORY драйвер порта извлекает GUID категории контакта из дескриптора пина драйвера минипорта для указанного типа контакта. Дополнительные сведения о дескрипторах пин-кода см. в разделе "Фабрики пин-кода".

USB-звуковое устройство имеет некоторое количество терминалов, через которые цифровые потоки и аналоговые сигналы могут входить и выйти из устройства. При создании фильтра KS для представления USB-звукового устройства системный драйвер класса USBAudio преобразует терминалы устройства в контакты фильтра. Файл заголовка Ksmedia.h определяет сопоставление для каждого идентификатора типа терминала USB с GUID категории пин-кода KS. В следующих шести таблицах показаны идентификаторы типов терминала и соответствующие идентификаторы guid категории пин-кода.

Типы входных терминалов

ИДЕНТИФИКАТОР USB-терминала GUID категории контактов KS

0x0201

KSNODETYPE_МИКРОФОН

0x0202

KSNODETYPE_DESKTOP_MICROPHONE (микрофон для настольного использования)

0x0203

KSNODETYPE_PERSONAL_MICROPHONE

0x0204

KSNODETYPE_МИКРОФОН_ОМНИДИРЕКЦИОНАЛЬНЫЙ

0x0205

KSNODETYPE_MICROPHONE_ARRAY

0x0206

KSNODETYPE_PROCESSING_MICROPHONE_ARRAY

Типы выходного терминала

ИДЕНТИФИКАТОР USB-терминала GUID категории контактов KS

0x0301

KSNODETYPE_SPEAKER

0x0302

KSNODETYPE_HEADPHONES

0x0303

KSNODETYPE_HEAD_MOUNTED_DISPLAY_AUDIO

0x0304

KSNODETYPE_DESKTOP_SPEAKER

0x0305

KSNODETYPE_ROOM_SPEAKER

0x0306

KSNODETYPE_COMMUNICATION_SPEAKER

0x0307

Динамик низкочастотных эффектов KSNODETYPE

Двунаправленные типы терминалов

ИДЕНТИФИКАТОР USB-терминала GUID категории контактов KS

0x0401

KSNODETYPE_HANDSET

0x0402

KSNODETYPE_HEADSET

0x0403

KSNODETYPE_SPEAKERPHONE_NO_ECHO_REDUCTION (спикерфон без уменьшения эха)

0x0404

KSNODETYPE_ECHO_SUPPRESSING_SPEAKERPHONE (Спикерфон с эхоподавлением)

0x0405

KSNODETYPE_ECHO_CANCELING_SPEAKERPHONE

Типы терминалов телефонии

ИДЕНТИФИКАТОР USB-терминала GUID категории контактов KS

0x0501

KSNODETYPE_PHONE_LINE

0x0502

KSNODETYPE_TELEPHONE

0x0503

KSNODETYPE_DOWN_LINE_PHONE

Типы внешних терминалов

ИДЕНТИФИКАТОР USB-терминала GUID категории контактов Pin KS

0x0601

KSNODETYPE_ANALOG_CONNECTOR

0x0602

KSNODETYPE_ЦИФРОВОЙ_АУДИО_ИНТЕРФЕЙС

0x0603

KSNODETYPE_LINE_CONNECTOR

0x0604

KSNODETYPE_LEGACY_AUDIO_CONNECTOR

0x0605

KSNODETYPE_SPDIF_INTERFACE

0x0606

KSNODETYPE_1394_DA_STREAM

0x0607

KSNODETYPE_1394_DV_STREAM_SOUNDTRACK

Типы встроенных терминалов функций

ИДЕНТИФИКАТОР USB-терминала GUID категории контактов KS

0x0701

KSNODETYPE_LEVEL_CALIBRATION_NOISE_SOURCE

0x0702

KSNODETYPE_EQUALIZATION_NOISE

0x0703

KSNODETYPE_CD_PLAYER

0x0704

KSNODETYPE_DAT_IO_DIGITAL_AUDIO_TAPE

0x0705

KSNODETYPE_DCC_IO_DIGITAL_COMPACT_CASSETTE

0x0706

KSNODETYPE_MINIDISK

0x0707

KSNODETYPE_ANALOG_TAPE

0x0708

KSNODETYPE_PHONOGRAPH

0x0709

KSNODETYPE_VCR_AUDIO

0x070A

KSNODETYPE_VIDEO_DISC_AUDIO

0x070B

KSNODETYPE_DVD_AUDIO

0x070C

KSNODETYPE_TV_TUNER_AUDIO

0x070D

KSNODETYPE_SATELLITE_RECEIVER_AUDIO

0x070E

KSNODETYPE_CABLE_TUNER_AUDIO

0x070F

KSNODETYPE_DSS_AUDIO

0x0710

KSNODETYPE_RADIO_RECEIVER

0x0711

KSNODETYPE_RADIO_TRANSMITTER

0x0712

KSNODETYPE_MULTITRACK_RECORDER

0x0713

KSNODETYPE_SYNTHESIZER

Дополнительные сведения об идентификаторах типа терминала USB см. в определении класса устройства универсальной шины для типов терминалов (выпуск 1.0), который доступен на веб-сайте форума разработчиков USB .

Все GUID категории контактов в предыдущих таблицах имеют имена параметров вида KSNODETYPE_XXX. Обратите внимание, что идентификаторы GUID типа KS узлов также имеют имена параметров KSNODETYPE_XXX. Это соглашение об именовании создает потенциальную возможность путаницы между GUID'ами категорий выводов и GUID'ами типов узлов. К счастью, почти каждый параметр KSNODETYPE_XXX определяет либо категорию контакта, либо тип узла, но не оба. Одним из исключений правила является KSNODETYPE_SYNTHESIZER, которое может определять или категорию вывода, или тип узла в зависимости от контекста. Список идентификаторов GUID типа узла смотрите в разделе «Узлы аудио топологии».

При создании экземпляра USB-звукового устройства системный драйвер класса USBAudio запрашивает у устройства его внутреннюю топологию, включая терминалы. С помощью этой информации драйвер USBAudio строит фильтр для представления устройства и преобразует каждый терминал в соответствующий контакт фильтра. В ходе этого процесса драйвер преобразует каждый идентификатор типа терминала USB в соответствующий GUID категории подключения KS, который является одним из GUID в предыдущих таблицах. Драйвер создает структуру KSPIN_DESCRIPTOR для описания пин-кода и записывает GUID категории пин-кода в структуру.

Минипорт-драйвер PortCls не обязательно использует только GUID категорий, указанные в предыдущих шести таблицах. Например, драйвер может определить и использовать идентификатор GUID пользовательской категории пин-кода для описания типа пин-кода, функциональная категория которого выходит за рамки категорий в таблицах. Естественно, настраиваемый GUID категории пин-кода полезен только для клиентов, которые распознают GUID.

Звуковая подсистема поддерживает список GUID идентификаторов категорий контактов и связанных с ними удобочитаемых имен в системном реестре. Установщик класса мультимедиа копирует пары GUID-name в реестр из файла Ks.inf, расположенного в подпапке Inf основной папки Windows (например, C:\Windows\Inf\Ks.inf).

Операционная система использует категории контактов для связывания понятных имен с устройствами конечной точки аудио. Дополнительные сведения о связывании понятных имен с устройствами конечной точки аудио см. в разделе "Понятные имена" для устройств конечной точки аудио.