Общие сведения о перечислении коллекций интерфейсов на составных USB-устройствах
Интерфейсы на составном USB-устройстве можно сгруппировать в коллекции. Универсальный родительский драйвер USB (Usbccgp.sys) может перечислять коллекции интерфейсов четырьмя способами.
Эти четыре метода перечисления коллекций интерфейсов упорядочены иерархически следующим образом:
Процедуры обратного вызова, предоставляемые поставщиком
Если поставщик зарегистрировал подпрограмму обратного вызова в универсальном родительском драйвере USB (Usbccgp.sys), универсальный родительский драйвер имеет приоритет перед подпрограммой обратного вызова и позволяет подпрограмме обратного вызова группировать интерфейсы, а не использовать какой-то другой метод. Дополнительные сведения о перечислении коллекции интерфейсов с помощью процедур обратного вызова, предоставляемых поставщиком, см. в статье Перечисление коллекций интерфейсов на составных usb-устройствах.
Функциональные дескрипторы объединения
. Если поставщик включил перечисление CDC и WMCDC в универсальном родительском драйвере USB, универсальный родительский драйвер использует функциональные дескрипторы объединения (UFD) для группировки интерфейсов в коллекции. Если этот параметр включен, этот метод имеет приоритет над всеми другими методами, за исключением процедур обратного вызова, предоставляемых поставщиком.
Дескрипторы сопоставлений интерфейсов
Если дескрипторы ассоциаций интерфейсов (IAD) присутствуют, универсальный родительский драйвер USB всегда группирует интерфейсы с помощью IAD, а не с помощью устаревших методов. Корпорация Майкрософт рекомендует поставщикам использовать IAD для определения коллекций интерфейсов.
Устаревший звуковой метод
Универсальный родительский драйвер USB может перечислять коллекции интерфейсов с помощью устаревших методов, зарезервированных для звуковых функций. Универсальный родительский драйвер не использует этот метод, если на устройстве есть идентификаторы ID.
Настройка перечисления коллекций интерфейсов для составных устройств
Некоторые USB-устройства имеют коллекции интерфейсов, которые не может описать дескриптор ассоциаций usb-интерфейсов (IAD). В Windows Vista и более поздних операционных системах поставщики могут настроить способ определения и перечисления коллекций интерфейсов устройства в универсальном родительском драйвере USB (Usbccgp.sys). Это делается с помощью процедуры обратного вызова перечисления в драйвере фильтра. Подпрограмма обратного вызова помогает универсальному родительскому драйверу определить коллекции пользовательских интерфейсов для устройства.
Чтобы универсальный родительский драйвер определял коллекции пользовательских интерфейсов, поставщик составного устройства должен:
- Реализуйте подпрограмму обратного вызова перечисления (USBC_START_DEVICE_CALLBACK).
- Укажите указатель на подпрограмму обратного вызова в интерфейсе конфигурации USB-устройства (элемент StartDeviceCallbackUSBC_DEVICE_CONFIGURATION_INTERFACE_V1).
- Укажите INF-файл, который соответствует идентификатору устройства составного устройства и явно загружает как универсальный родительский драйвер USB, так и драйвер фильтра.
Рекомендации по реализации
Драйвер фильтра, содержащий подпрограмму обратного вызова перечисления, может быть верхним или нижним драйвером фильтра. Когда универсальный родительский драйвер USB получает IRP_MN_START_DEVICE запрос на запуск составного устройства, он запрашивает интерфейс конфигурации USB-устройства, отправляя запрос IRP_MN_QUERY_INTERFACE в верхнюю часть стека драйверов.
При получении запроса IRP_MN_QUERY_INTERFACE драйвер фильтра должен проверка тип GUID в элементе InterfaceType запроса, чтобы убедиться, что запрошенный интерфейс имеет тип USB_BUS_INTERFACE_USBC_CONFIGURATION_GUID. Если это так, драйвер фильтра возвращает указатель на интерфейс в элементе Интерфейс IRP.
Подпрограмма обратного вызова перечисления должна возвращать указатель на массив дескрипторов функций (USBC_FUNCTION_DESCRIPTOR), описывающих коллекции интерфейсов. Каждый дескриптор функции содержит массив дескрипторов интерфейса (USB_INTERFACE_DESCRIPTOR), описывающих коллекцию интерфейсов. Подпрограмма обратного вызова должна выделять дескрипторы функций и дескрипторы интерфейса из нестраничного пула. Универсальный родительский драйвер освобождает эту память. Подпрограмма обратного вызова должна гарантировать, что член NumberOfInterfaces каждого USB_INTERFACE_DESCRIPTOR точно сообщает количество интерфейсов в коллекции интерфейсов.
Универсальный родительский драйвер создает объект физического устройства (PDO) для каждого дескриптора функции.
Интерфейс конфигурации USB-устройства и подпрограмма обратного вызова перечисления приведены в разделе Универсальные родительские подпрограммы драйвера.
Механизм загрузки универсального родительского драйвера USB
Если составное устройство соответствует требованиям, описанным в разделе Перечисление составных USB-устройств, операционная система создает совместимый USB\COMPOSITE
идентификатор , чтобы указать, что устройство является составным. Совместимый идентификатор создает совпадение в usb.inf, и операционная система автоматически загружает универсальный родительский драйвер USB без помощи предоставленного поставщиком INF-файла.
Однако этот механизм по умолчанию не работает для составных устройств, которым требуется пользовательское перечисление коллекций интерфейсов, так как в механизме по умолчанию система не загружает необходимый драйвер фильтра, предоставленный поставщиком. Чтобы механизм подпрограммы обратного вызова перечисления работал, драйвер фильтра, предоставляющий интерфейс конфигурации USB-устройства, уже должен быть загружен, когда универсальный родитель USB перечисляет коллекции интерфейсов составного устройства. Для этого поставщик составного устройства должен установить INF-файл, соответствующий идентификатору составного устройства, и явно загружает как универсальный родительский драйвер USB, так и драйвер фильтра.
Поддержка класса беспроводных мобильных устройств связи
В Windows Vista универсальный родительский драйвер USB (Usbccgp.sys) обеспечивает поддержку устройств, включенных в класс устройств связи (CDC) универсальной последовательной шины (USB) и класс устройств беспроводной мобильной связи USB (WMCDC).
Спецификация USB Wireless Mobile Communication Device Class (WMCDC) устанавливает стандарт для подключения, управления и обмена содержимым между узлом и беспроводным мобильным устройством (например, мобильным телефоном), когда устройство подключено к USB-порту. WMCDC — это расширение класса устройств связи (CDC), включающее в себя широкий спектр коммуникационных и сетевых устройств. В этом разделе описывается архитектура, поддерживающая устройства CDC и WMCDC в операционных системах Windows.
Устройства WMCDC состоят из нескольких функций, сгруппированных в логические телефоны. Большинство устройств WMCDC имеют один логический телефон, но устройство может иметь несколько логических телефонов. Логические телефоны обычно включают такие функции, как модем данных и факсов, хранилище объектов и средство управления вызовами. Логический телефон может также включать вспомогательные функции, определенные другими спецификациями USB, такими как спецификация класса USB Audio, спецификация класса USB Human Input Device (HID) и спецификация класса ВИДЕО USB.
Архитектура Windows WMCDC использует собственные драйверы Windows для управления функциями устройства WMCDC. Например, вы можете использовать подсистему программного интерфейса приложения телефонии Windows (TAPI) для управления функциями голосового и факсимильного модема вашего устройства, а также подсистему спецификации сетевого интерфейса драйвера Windows (NDIS) для управления функцией Локальной сети Ethernet устройства. Кроме того, вы можете управлять некоторыми функциями, например функцией OBEX, в программном обеспечении в пользовательском режиме с помощью WinUSB (Winusb.sys).
На этом изображении показан пример стека драйверов для устройства WMCDC.
На предыдущем рисунке устройство WMCDC содержит один логический телефон: функцию OBEX и функцию модема. INF-файл, предоставляемый поставщиком, загружает собственные драйверы Windows для управления модемом. Функция OBEX управляется предоставленным поставщиком драйвером пользовательского режима, который выполняется в среда выполнения платформы драйвера режима пользователя (UMDF). Драйвер пользовательского режима использует протокол Windows Portable Devices (WPD) для взаимодействия с пользовательскими приложениями и интерфейсом, экспортируемым WinUSB для взаимодействия с USB-стеком. Как правило, INF-файл, предоставленный поставщиком, загружает отдельный экземпляр Winusb.sys для каждой коллекции интерфейсов, которая использует Winusb.sys.
Параметры реестра
Стек USB не поддерживает WMCDC автоматически. Необходимо предоставить INF-файл, который загружает экземпляр Usbccgp.sys. INF-файл должен содержать раздел AddReg , который задает значение реестра EnumeratorClass в программном ключе, связанном с Usbccgp.sys, значением REG_BINARY, сформированным из трех чисел: 0x02, 0x00 и 0x 00. В следующем примере кода из примера INF-файла показано, как задать для EnumeratorClass соответствующее значение.
[CCGPDriverInstall.NT]
Include=usb.inf
Needs=Composite.Dev.NT
AddReg=CCGPDriverInstall.AddReg
[CCGPDriverInstall.NT.Services]
Include=usb.inf
Needs=Composite.Dev.NT.Services
[CCGPDriverInstall.AddReg]
HKR,,EnumeratorClass, 0x00000001,02,00,00
Значение, которое необходимо назначить EnumeratorClass , создается из трех 1-байтовых двоичных значений, представленных в INF-файле парами шестнадцатеричных цифр: 02, 00 и 00. Эти три числа соответствуют значениям, которые форум разработчиков USB присвоил классу устройств CDC, подклассу устройства CDC и протоколу устройства CDC соответственно.
WmCDC описывается в следующих разделах:
Перечисление коллекций интерфейсов в WMCDC
Класс USB-устройства беспроводной мобильной связи (WMCDC) является подклассом класса USB-устройств связи (CDC). Спецификация WMCDC расширяет, но не существенно изменяет рекомендации CDC по определению коллекций интерфейсов. В частности, устройства WMCDC должны соответствовать рекомендациям CDC по определению коллекций интерфейсов.
Коллекции интерфейсов CDC содержат интерфейс master (USB_INTERFACE_DESCRIPTOR), принадлежащий классу интерфейса связи (bInterfaceClass = 0x02
) или классу интерфейса данных (bInterfaceClass = 0x0A
). Если интерфейс master относится к классу интерфейса связи (что является типичной ситуацией), подкласс интерфейса master (bInterfaceSubClass) указывает модель управления CDC. Модель элемента управления указывает тип интерфейсов, включенных в коллекцию интерфейсов. Описание моделей элементов управления, определяемых форумом разработчиков USB, см. в спецификации CDC и WMCDC.
За интерфейсом master коллекции интерфейсов следует набор обязательных функциональных дескрипторов класса, включая функциональный дескриптор объединения (UFD). В UFD перечислены номера интерфейсов, принадлежащих коллекции. Поле bMasterInterface UFD содержит номер интерфейса master. Ноль или более полей bSubordinateInterface содержат номера других (подчиненных) интерфейсов в коллекции.
Для большинства типов моделей управления универсальный родительский драйвер USB (Usbccgp.sys) создает один объект физического устройства (PDO) для каждого UFD. Но некоторые модели управления включают звуковой интерфейс, который перечисляется универсальным родительским драйвером отдельно от коллекции интерфейсов, к которой принадлежит звуковой интерфейс. Аудиоинтерфейс отображается в списке подчиненных интерфейсов (bSubordinateInterface) в UFD коллекции интерфейсов, но универсальный родительский драйвер создает отдельное PDO для аудиоинтерфейса. PDO для звукового интерфейса и PDO для коллекции интерфейсов, к которой принадлежит звуковой интерфейс, находятся непосредственно над объектом функционального устройства (FDO) родительского составного устройства в дереве объектов устройства. PDO звукового интерфейса не является дочерним элементом коллекции интерфейсов.
Существует две модели управления, характеристики перечисления которых настраиваются в реестре: модель управления беспроводного телефона (WHCM), которая определяет логический телефон, и модель управления OBEX. Чтобы настроить характеристики перечисления этих двух моделей управления, необходимо предоставить INF-файл, который загружает экземпляр Usbccgp.sys и задает значение CdcFlags в программном ключе для этого экземпляра Usbccgp.sys. В следующей таблице описаны параметры конфигурации CdcFlags.
Бит CdcFlags | Бит, равный 0 | Бит, равный 1 |
---|---|---|
0 (маска = 0x00000001) | Универсальный родительский драйвер USB создает отдельное PDO для каждого интерфейса OBEX. | Универсальный родительский драйвер USB создает одно PDO для всех интерфейсов OBEX. |
1 (маска = 0x00000010) | Универсальный родительский драйвер USB не создает PDO для интерфейсов WHCM (логических телефонов). Эти интерфейсы остаются скрытыми с точки зрения дерева объектов устройства. | Универсальный родительский драйвер USB создает PDO для каждого интерфейса WHCM. |
Например, чтобы очистить оба бита (задать для них значение 0), в INF-файле должна быть указана следующая строка в разделе DDInstall.AddReg .
HKR, , CdcFlags, 0x00010001, 0x00000000
Чтобы задать для обоих битов значение 1, INF-файл должен содержать следующую строку.
HKR, , CdcFlags, 0x00010001, 0x00000011
Чтобы задать для бита 0 значение 1, а для бита 1 — 0, INF-файл должен содержать следующую строку.
HKR, , CdcFlags, 0x00010001, 0x00000001
Любой бит можно задать или сбросить независимо от другого бита.
На следующих рисунках показано, как различные конфигурации реестра могут создавать разные деревья устройств для одного устройства.
На следующем рисунке показана конфигурация PDO, когда биты 0 и 1 cdcFlags имеют значение 0.
Коллекция интерфейсов модели управления беспроводной телефонной связью (WHCM) на предыдущем рисунке содержит три коллекции подчиненных интерфейсов (bSubordinateInterface): две коллекции OBEX и коллекцию модемов. Бит 0 cdcFlags равен 0, поэтому универсальный родительский драйвер USB не создает PDO для коллекции интерфейсов WHCM. Бит 1 cdcFlags равен 0, поэтому универсальный родительский драйвер USB создает отдельное PDO для каждой коллекции интерфейсов OBEX.
На следующем рисунке показана конфигурация PDO, если заданы биты 0 и 1 cdcFlags .
Так как бит 0 cdcFlags имеет значение 1, универсальный родительский драйвер USB создает PDO для коллекции интерфейсов WHCM. Так как бит 1 cdcFlags имеет значение 1, универсальный родительский драйвер USB группирует две коллекции OBEX и создает одно PDO для обеих коллекций OBEX.
Может потребоваться представить коллекции OBEX с одним PDO на уровне ядра и различать каждую отдельную коллекцию OBEX в драйвере пользовательского режима. Протокол Windows Portable Devices (WPD) позволяет мультиплексировать потоки данных между разными функциями OBEX на уровне пользователя, когда все функции OBEX сгруппированы в одно PDO на уровне ядра.
В следующем примере INF-файла загружается универсальный родительский драйвер USB для управления устройством WMCDC и показано, как создать PDO для логических телефонов и создать одно PDO для всех коллекций OBEX в логическом телефоне.
[Version]
Signature="$Windows NT$"
Class=USB
ClassGUID={36FC9E60-C465-11CF-8056-444553540000}
Provider=%MSFT%
DriverVer=07/01/2001,5.1.2600.0
CatalogFile=ExampleCatalog.cat
PnpLockdown=1
[ControlFlags]
ExcludeFromSelect=*
[Manufacturer]
CompanyName=CompanyName,NTamd64
[CompanyName.NTamd64]
%COMPANYNAME.DeviceDesc%=CCGPDriverInstall,USB\Vid_????&Pid_????
[CCGPDriverInstall.NT]
Include=usb.inf
Needs=Composite.Dev.NT
AddReg=CCGPDriverInstall.AddReg
[CCGPDriverInstall.NT.Services]
Include=usb.inf
Needs=Composite.Dev.NT.Services
[CCGPDriverInstall.AddReg]
HKR,,EnumeratorClass,0x00000001,02,00,00
HKR,,CdcFlags,0x00010001,0x00010001
[Strings]
MSFT="Microsoft"
COMPANYNAME.DeviceDesc="USB Phone Parent"
Обработка коллекций интерфейсов CDC и WMCDC
Универсальный родительский драйвер USB специально обрабатывает интерфейсы модели управления беспроводным телефоном (WHCM).
В следующем списке перечислены наиболее важные способы, которыми обработка коллекций интерфейсов CDC и WMCDC отличается от других коллекций интерфейсов.
- Класс беспроводных мобильных устройств связи допускает ограниченное вложение коллекций интерфейсов. В частности, коллекция интерфейсов логического набора телефонов (то есть коллекция интерфейсов WHCM) может содержать другие коллекции подчиненных интерфейсов. Например, телефон, совместимый с WMCDC, может иметь коллекцию интерфейсов WHCM, которая, в свою очередь, содержит коллекцию абстрактных моделей управления и коллекцию OBEX.
- Вы можете настроить универсальный родительский драйвер USB, чтобы не перечислять коллекции интерфейсов WHCM. Коллекции интерфейсов WHCM, которые не перечислены, остаются скрытыми, но универсальный родительский драйвер использует сведения из дескрипторов функций объединения (UFD), принадлежащих коллекциям интерфейсов WHCM, для группировки и перечисления коллекций подчиненных интерфейсов.
- Вы можете настроить универсальный родительский драйвер USB для создания отдельных объектов физических устройств (PDO) для коллекций интерфейсов моделей элементов управления OBEX или создания одного PDO для всех коллекций интерфейсов модели управления OBEX.
- Список номеров интерфейсов в UFD может содержать пробелы. То есть номера интерфейсов UFD могут ссылаться на интерфейсы, которые не являются смежными. Этот тип нумерирования недопустим, например для дескриптора ассоциации интерфейса USB (IAD), интерфейсы которого должны быть смежными и иметь последовательные номера.
- UFD могут включать связанные коллекции звуковых интерфейсов
- Идентификаторы оборудования для коллекций интерфейсов CDC и WMCDC должны включать подкласс интерфейса. Другие USB-интерфейсы, идентификаторы оборудования которых содержат суффикс MI_%02X, указывающий номер интерфейса, не содержат сведений о подклассе интерфейса. Сведения о подклассе включаются в идентификатор оборудования, чтобы позволить поставщикам предоставлять INF-файлы с совпадениями идентификаторов оборудования для конкретных коллекций интерфейсов, а не полагаться на положение интерфейса в макете дескриптора, чтобы определить, какой драйвер следует загрузить для коллекции. Сведения о подклассе в идентификаторе оборудования также позволяют постепенно переходить от текущих драйверов, предоставляемых поставщиком, которые управляют коллекциями интерфейсов WMCDC, к альтернативным вариантам, таким как драйверы пользовательского режима. Общие сведения о том, как форматируются аппаратные идентификаторы интерфейсов USB, см. в разделе Идентификаторы для USB-устройств.
Модели управления CDC и WMCDC
В разделе Модели управления CDC и WMCDC описываются свойства коллекций интерфейсов, поддерживаемых в операционных системах Microsoft Windows. Каждое описание включает, среди прочего, список идентификаторов оборудования и устройств, которые создается универсальным родительским драйвером USB для коллекции интерфейсов.
Большинство коллекций интерфейсов, поддерживаемых Windows, соответствуют моделям управления, принадлежащим к классу устройств связи (CDC) и классу беспроводных мобильных устройств связи (WMCDC), но операционная система также поддерживает устаревшие коллекции аудио- и видеоиспытов и коллекцию интерфейсов, определяемую консорциумом по продвижению мобильных вычислений (MCPC).
Ниже перечислены коллекции интерфейсов, описанные в этом разделе.
Интерфейсы класса Audio
Коллекции интерфейсов класса USB Audio Device, которые встречаются на устройствах CDC и WMCDC, имеют следующие свойства.
Свойство | Описание |
---|---|
Справка | Определение класса устройства универсальной последовательной шины для звуковых устройств версии 1.0. |
Класс | Все интерфейсы в коллекции интерфейсов должны принадлежать классу звуковых устройств (0x01). |
Подкласс | Каждый интерфейс в коллекции интерфейсов должен иметь подкласс, отличный от первого интерфейса в коллекции. |
Протокол | Нет (0x00). |
Enumerated | Да. |
Связанные интерфейсы | Ноль или более смежных интерфейсов, принадлежащих к подклассу потоковой передачи (0x02). |
Идентификаторы оборудования | USB\Vid_%04x&Pid_%04x&Rev_%04x&MI_%02x USB\Vid_%04x&Pid_%04x&MI_%02x Идентификаторы оборудования для коллекций звуковых интерфейсов не содержат сведений о классах интерфейса. |
Совместимые ИД | USB\Class_01&SubClass_01&Prot_00 USB\Class_01&SubClass_01 USB\Class_01 Формат совместимых идентификаторов для коллекций звуковых интерфейсов содержит внедренные сведения о классе интерфейса, подклассе интерфейса и протоколе. Для коллекций звуковых интерфейсов на устройстве CDC или WMCDC класс интерфейса равен 01, подкласс — 01, а протокол — 00. |
Модель абстрактного элемента управления CDC
Существует две версии абстрактной модели управления (ACM). Исходная версия определена в спецификации класса USB-устройства связи (CDC). Спецификация USB Wireless Mobile Communication Device Class (WMCDC) содержит расширенное определение ACM.
На этой странице описаны коллекции интерфейсов, соответствующие спецификации WMCDC.
Коллекции интерфейсов, соответствующие спецификации CDC, имеют следующие свойства.
Свойство | Описание |
---|---|
Справка | Определения классов универсальной последовательной шины для устройств связи версии 1.1, раздел 3.6.2. |
Класс интерфейса master | Класс интерфейса связи (0x02). |
Подкласс интерфейса master | ACM (0x02). |
Протокол | Любой. |
Enumerated | Да. |
Связанные интерфейсы | Один интерфейс класса данных и дополнительные интерфейсы класса аудио, на которые ссылается функциональный дескриптор объединения (UFD). |
Идентификаторы оборудования | USB\Vid_%04x&Pid_%04x&Rev_%04x&Cdc_02&MI_%02x USB\Vid_%04x&Pid_%04x&Rev_%04x&Cdc_02 USB\Vid_%04x&Pid_%04x&Cdc_02&MI_%02x USB\Vid_%04x&Pid_%04x&Cdc_02 |
Совместимые ИД | USB\Class_02&SubClass_02&Prot_%02X USB\Class_02&SubClass_02 USB\Class_02 |
Специальная обработка | UFD может ссылаться на коллекцию звуковых интерфейсов, которая перечисляется независимо от коллекции интерфейсов ACM. |
Модель управления сетью CDC ATM
Коллекции интерфейсов МОДЕЛИ управления сетью ATM (ANCM) USB CDC имеют следующие свойства.
Свойство | Описание |
---|---|
Справка | Определения классов универсальной последовательной шины для устройств связи версии 1.1, раздел 3.8.3 |
Класс интерфейса master | Класс интерфейса связи (0x02) |
Подкласс интерфейса master | ANCM (0x07) |
Протокол | Нет (0x00) |
Enumerated | Да |
Связанные интерфейсы | Один интерфейс класса данных, на который ссылается функциональный дескриптор объединения (UFD) |
Идентификаторы оборудования | USB\Vid_%04x&Pid_%04x&Rev_%04x&Cdc_07&MI_%02x USB\Vid_%04x&Pid_%04x&Rev_%04x&Cdc_07 USB\Vid_%04x&Pid_%04x&Cdc_07&MI_%02x USB\Vid_%04x&Pid_%04x&Cdc_07 |
Совместимые ИД | USB\Class_02&SubClass_07&Prot_00 USB\Class_02&SubClass_07 USB\Class_02 |
Специальная обработка | Нет |
Модель управления CDC CAPI
Коллекции интерфейсов модели управления COMMON ISDN API (CAPI) USB CDC имеют следующие свойства.
Свойство | Описание |
---|---|
Справка | Определения классов универсальной последовательной шины для устройств связи, версия 1.1, раздел 3.7.2 |
Класс интерфейса master | Класс интерфейса связи (0x02) |
Подкласс интерфейса master | CAPI (0x05) |
Протокол | Нет (0x00) |
Enumerated | Да |
Связанные интерфейсы | Один интерфейс класса данных, на который ссылается функциональный дескриптор объединения (UFD). |
Идентификаторы оборудования | USB\Vid_%04x&Pid_%04x&Rev_%04x&Cdc_05&MI_%02x USB\Vid_%04x&Pid_%04x&Rev_%04x&Cdc_05 |
Совместимые ИД | USB\Class_02&SubClass_05&Prot_00 USB\Class_02&SubClass_05 |
Специальная обработка | Нет |
Модель управления прямой линией CDC
Коллекции интерфейсов модели прямого управления (DLCM) USB CDC имеют следующие свойства.
Свойство | Описание |
---|---|
Справка | Определения классов универсальной последовательной шины для устройств связи версии 1.1, раздел 3.6.1. |
Класс интерфейса master | Класс интерфейса связи (0x02). |
Подкласс интерфейса master | DLCM (0x01). |
Протокол | Нет (0x00). |
Enumerated | Да. |
Связанные интерфейсы | Класс audio или определяемые поставщиком интерфейсы, на которые ссылается функциональный дескриптор объединения (UFD). |
Идентификаторы оборудования | USB\Vid_%04x&Pid_%04x&Rev_%04x&Cdc_01&MI_%02x USB\Vid_%04x&Pid_%04x&Rev_%04x&Cdc_01 USB\Vid_%04x&Pid_%04x&Cdc_01&MI_%02x USB\Vid_%04x&Pid_%04x&Cdc_01 |
Совместимые ИД | USB\Class_02&SubClass_01&Prot_00 USB\Class_02&SubClass_01``USB\Class_02 |
Специальная обработка | UFD ссылается на коллекцию интерфейсов аудиоклассов, которая перечисляется независимо от коллекции интерфейсов DLCM. |
Модель управления сетью CDC Ethernet
Коллекции интерфейсов модели управления сетью (ENCM) USB CDC Ethernet имеют следующие свойства.
Свойство | Описание |
---|---|
Справка | Определения классов универсальной последовательной шины для устройств связи версии 1.1, раздел 3.8.2. |
Класс интерфейса master | Класс интерфейса связи (0x02). |
Подкласс интерфейса master | ENCM (0x06). |
Протокол | Нет (0x00). |
Enumerated | Да. |
Связанные интерфейсы | Один интерфейс класса данных, на который ссылается функциональный дескриптор объединения (UFD). |
Идентификаторы оборудования | USB\Vid_%04x&Pid_%04x&Rev_%04x&Cdc_06&MI_%02x USB\Vid_%04x&Pid_%04x&Rev_%04x&Cdc_06 USB\Vid_%04x&Pid_%04x&Cdc_06&MI_%02x USB\Vid_%04x&Pid_%04x&Cdc_06 |
Совместимые ИД | USB\Class_02&SubClass_06&Prot_00 USB\Class_02&SubClass_06 USB\Class_02 |
Специальная обработка | Совместимые идентификаторы этой модели управления совпадают в предоставленном Корпорацией Майкрософт INF-файле. Если операционная система не находит совпадение для одного из идентификаторов оборудования в предоставленном поставщиком INF-файле, система автоматически загружает собственный драйвер мини-порта NDIS для управления коллекцией интерфейсов. |
Модель управления CDC с несколькими каналами ISDN
Коллекции многоканационных моделей управления ISDN (MCCM) USB CDC имеют следующие свойства.
Свойство | Описание |
---|---|
Справка | Определения классов универсальной последовательной шины для устройств связи, версия 1.1, раздел 3.7.1 |
Класс интерфейса master | Класс интерфейса связи (0x02) |
Подкласс интерфейса master | MCCM (0x04) |
Протокол | Нет (0x00) |
Enumerated | Да |
Связанные интерфейсы | Несколько интерфейсов класса данных, на которые ссылается функциональный дескриптор объединения (UFD). |
Идентификаторы оборудования | USB\Vid_%04x&Pid_%04x&Rev_%04x&Cdc_04&MI_%02x USB\Vid_%04x&Pid_%04x&Rev_%04x&Cdc_04 USB\Vid_%04x&Pid_%04x&Cdc_04&MI_%02x USB\Vid_%04x&Pid_%04x&Cdc_04 |
Совместимые ИД | USB\Class_02&SubClass_04&Prot_00 USB\Class_02&SubClass_04 USB\Class_02 |
Специальная обработка | Нет |
Модель управления телефоном CDC
Коллекции интерфейсов модели управления телефоном USB CDC (TCM) имеют следующие свойства.
Свойство | Описание |
---|---|
Справка | Определения классов универсальной последовательной шины для устройств связи, версия 1.1, раздел 3.6.3. |
Класс интерфейса master | Класс интерфейса связи (0x02). |
Подкласс интерфейса master | TCM (0x03). |
Протокол | Любой. |
Enumerated | Да. |
Связанные интерфейсы | Интерфейсы класса audio, на которые ссылается функциональный дескриптор объединения (UFD). |
Код оборудования | USB\Vid_%04x&Pid_%04x&Rev_%04x&Cdc_03&MI_%02x USB\Vid_%04x&Pid_%04x&Rev_%04x&Cdc_03 USB\Vid_%04x&Pid_%04x&Cdc_03&MI_%02x USB\Vid_%04x&Pid_%04x&Cdc_03 |
Совместимый идентификатор | USB\Class_02&SubClass_03&Prot_%02X USB\Class_02&SubClass_03 USB\Class_02 |
Специальная обработка | UFD может ссылаться на коллекцию интерфейсов класса аудио, которая перечисляется независимо от коллекции интерфейсов TCM. |
Интерфейсы MCPC, уникальные для поставщика
Консорциум по продвижению мобильных вычислений (MCPC) определил формат для коллекций интерфейсов до того, как спецификация класса беспроводных мобильных устройств связи (WMCDC) предоставила формат для устройств CDC, уникальных для поставщиков. Таким образом, коллекции интерфейсов MCPC не соответствуют стандарту WMCDC.
Однако универсальный родительский драйвер USB может перечислить коллекции интерфейсов MCPC, если включен WMCDC. Коллекции интерфейсов MCPC имеют следующие свойства.
Свойство | Описание |
---|---|
Справка | Спецификация GL-004 консорциума по продвижению мобильных вычислений (MCPC) |
Класс | CDC (0x02) |
Подкласс | 0x88 |
Протокол | Нет (0x00) |
Enumerated | Да |
Связанные интерфейсы | Ноль или более интерфейсов класса данных, на которые ссылается функциональный дескриптор объединения (UFD) |
Идентификаторы оборудования | USB\Vid_%04x&Pid_%04x&Rev_%04x&Cdc_88&MI_%02x USB\Vid_%04x&Pid_%04x&Rev_%04x&Cdc_88 USB\Vid_%04x&Pid_%04x&Cdc_88&MI_%02x USB\Vid_%04x&Pid_%04x&Cdc_88 |
Совместимые ИД | USB\Class_02&SubClass_88&Prot_00 USB\Class_02&SubClass_88 USB\Class_02 |
Специальная обработка | Нет |
Интерфейсы класса Video
Коллекции интерфейсов класса видеоустройств USB, которые происходят на устройствах CDC и WMCDC, имеют следующие свойства.
Свойство | Описание |
---|---|
Справка | Определение класса устройства универсальной последовательной шины для видеоустройств версии 1.0. |
Класс | Видео (0x0E). |
Подкласс | Управление видео (0x01). |
Протокол | Нет (0x00). |
Enumerated | Да. |
Связанные интерфейсы | Ноль или несколько смежных интерфейсов, принадлежащих к подклассу потоковой передачи (0x02). |
Идентификаторы оборудования | USB\Vid_%04x&Pid_%04x&Rev_%04x&MI_%02x USB\Vid_%04x&Pid_%04x&MI_%02x |
Совместимые ИД | USB\Class_0E&SubClass_01&Prot_00 USB\Class_0E&SubClass_01 USB\Class_0E |
Специальная обработка | Коллекции интерфейсов видеоклассов получают специальную обработку на устройствах CDC. На устройствах, отличных от CDC, коллекции интерфейсов видеоклассов определяются дескрипторами ассоциаций интерфейсов (IAD). На устройствах CDC коллекции интерфейсов видеоклассов определяются функциональными дескрипторами объединения (UFD). |
Абстрактная модель управления WMCDC
Существует две версии абстрактной модели управления (ACM). Исходная версия определена в спецификации класса USB Communication Device (CDC). Спецификация USB Wireless Mobile Communication Device Class (WMCDC) содержит расширенное определение ACM. Коллекции ACM, содержащие функцию факса или модема, должны использовать определение WMCDC ACM, а не исходное определение CDC ACM.
На этой странице описаны коллекции интерфейсов, соответствующие спецификации CDC.
Коллекции интерфейсов, соответствующие спецификации WMCDC, имеют следующие свойства.
Свойство | Описание |
---|---|
Справка | Спецификация подкласса CDC универсальной последовательной шины для беспроводных мобильных устройств связи, версия 1.0, раздел 6.2. |
Класс интерфейса master | Класс коммуникационного интерфейса (0x02). |
Подкласс интерфейса master | ACM (0x02). |
Протокол | Если в коллекции используется протокол набора команд AT, значение протокола, внедренное в совместимые идентификаторы, будет 0x01. Если коллекция использует один из протоколов, описываемых спецификацией WMCDC, значение протокола, внедренное в совместимые идентификаторы, 0x2 через 0x06 или 0xFE. |
Enumerated | Да. |
Связанные интерфейсы | Один интерфейс класса данных, на который ссылается функциональный дескриптор объединения (UFD). |
Идентификаторы оборудования | USB\Vid_%04x&Pid_%04x&Rev_%04x&Cdc_Modem&MI_%02x USB\Vid_%04x&Pid_%04x&Rev_%04x&Cdc_Modem USB\Vid_%04x&Pid_%04x&Cdc_Modem&MI_%02x USB\Vid_%04x&Pid_%04x&Cdc_Modem |
Совместимые ИД | USB\Class_02&SubClass_Modem&Prot_%02X USB\Class_02&SubClass_Modem USB\Class_02 |
Специальная обработка | UFD может ссылаться на коллекцию звуковых интерфейсов, которая перечисляется независимо от коллекции интерфейсов ACM. Коллекции интерфейсов должны соответствовать специальным требованиям к дескриптору и конечной точке, указанным в разделе 6.2 спецификации WMCDC. Если коллекция интерфейсов не соответствует требованиям WMCDC, но интерфейс соответствует требованиям CDC, универсальный родительский драйвер USB перечисляет коллекцию интерфейсов и идентификаторы универсального оборудования с форматами CDC. Совместимые идентификаторы этой модели управления совпадают в INF-файле, предоставленном Корпорацией Майкрософт. Если операционная система не находит совпадение для одного из идентификаторов оборудования в предоставленном поставщиком INF-файле, система автоматически загружает драйвер фильтра собственных телефонных приложений (TAPI) для управления функцией модема и задает соответствующие параметры реестра TAPI, если код протокола не 0xFE. Если код протокола 0xFE, поставщик должен предоставить устройство или со-установщик класса для правильного заполнения параметров реестра TAPI. |
Модель управления устройствами WMCDC
Коллекции интерфейсов модели управления устройствами (DMM) USB WMCDC имеют следующие свойства.
Свойство | Описание |
---|---|
Справка | Спецификация подкласса CDC универсальной последовательной шины для беспроводных мобильных устройств связи, версия 1.0, раздел 6.6. |
Класс интерфейса master | Класс коммуникационного интерфейса (0x02). |
Подкласс интерфейса master | DMM (0x09). |
Протокол | Любой. |
Enumerated | Да. |
Связанные интерфейсы | Нет. |
Идентификаторы оборудования | USB\Vid_%04x&Pid_%04x&Rev_%04x&Cdc_09&MI_%02x USB\Vid_%04x&Pid_%04x&Rev_%04x&Cdc_09 USB\Vid_%04x&Pid_%04x&Cdc_09&MI_%02x USB\Vid_%04x&Pid_%04x&Cdc_09 |
Совместимые ИД | USB\Class_02&SubClass_09&Prot_%02X USB\Class_02&SubClass_09 USB\Class_02 |
Специальная обработка | Эта модель управления не использует функциональный дескриптор объединения (UFD). |
Модель wmcdc mobile direct line
Коллекции интерфейсов МОДЕЛИ MDLM для мобильных устройств USB WMCDC имеют следующие свойства:
Свойство | Описание |
---|---|
Справка | Спецификация подкласса CDC универсальной последовательной шины для беспроводных устройств мобильной связи, версия 1.0, раздел 6.7 |
Класс интерфейса master | Класс интерфейса связи (0x02) |
Подкласс интерфейса master | MDLM (0x0A) |
Протокол | Любой |
Enumerated | Да |
Связанные интерфейсы | Один или несколько интерфейсов класса данных, на которые ссылается функциональный дескриптор объединения (UFD) |
Идентификаторы оборудования | USB\Vid_%04x&Pid_%04x&Rev_%04x&Cdc_0A&MI_%02x USB\Vid_%04x&Pid_%04x&Rev_%04x&Cdc_0A USB\Vid_%04x&Pid_%04x&Cdc_0A&MI_%02x USB\Vid_%04x&Pid_%04x&Cdc_0A |
Совместимые ИД | USB\Class_02&SubClass_0A&Prot_%02X USB\Class_02&SubClass_0A USB\Class_02 |
Специальная обработка | Нет. |
Модель управления OBEX WMCDC (несколько PDO)
Существует два способа перечисления коллекций интерфейсов модели управления obex: универсальный родительский драйвер USB может сгруппировать все интерфейсы OBEX и создать один объект физического устройства (PDO) для всех интерфейсов OBEX, или родительский драйвер может создать отдельное PDO для каждого интерфейса OBEX.
Когда универсальный родительский драйвер USB назначает отдельные PDO для каждого интерфейса OBEX, PDO имеют следующие свойства.
Свойство | Описание |
---|---|
Справка | Спецификация подкласса CDC универсальной последовательной шины для беспроводных устройств мобильной связи, версия 1.0, раздел 6.5. |
Класс интерфейса master | Класс интерфейса связи (0x02). |
Подкласс интерфейса master | OBEX (0x0B). |
Протокол | Нет (0x00). |
Enumerated | Да. |
Связанные интерфейсы | Один интерфейс класса данных, на который ссылается функциональный дескриптор объединения (UFD). |
Идентификаторы оборудования | USB\Vid_%04x&Pid_%04x&Rev_%04x&Cdc_0B&MI_%02x USB\Vid_%04x&Pid_%04x&Rev_%04x&Cdc_0B USB\Vid_%04x&Pid_%04x&Cdc_0B&MI_%02x USB\Vid_%04x&Pid_%04x&Cdc_0B |
Совместимые ИД | USB\Class_02&SubClass_0B&Prot_00 USB\Class_02&SubClass_0B USB\Class_02 |
Специальная обработка | Параметры реестра, связанные с экземпляром универсального родительского драйвера USB, который управляет составным устройством, определяют, управляются ли интерфейсы OBEX с помощью одного PDO или нескольких PDO. |
Модель управления OBEX WMCDC (одно PDO)
Существует два способа перечисления коллекций интерфейсов модели управления obex: универсальный родительский драйвер USB может сгруппировать все интерфейсы OBEX и создать один объект физического устройства (PDO) для всех интерфейсов OBEX, или родительский драйвер может создать отдельное PDO для каждого интерфейса OBEX.
Когда универсальный родительский драйвер USB назначает одно PDO всем интерфейсам OBEX, PDO имеет следующие свойства.
Свойство | Описание |
---|---|
Справка | Спецификация подкласса CDC универсальной последовательной шины для беспроводных устройств мобильной связи, версия 1.0, раздел 6.5. |
Класс интерфейса master | Класс интерфейса связи (0x02). |
Подкласс интерфейса master | OBEX (0x0B). |
Протокол | Нет (0x00). |
Enumerated | Да. |
Связанные интерфейсы | Один интерфейс класса данных, на который ссылается функциональный дескриптор объединения (UFD). |
Идентификаторы оборудования | USB\Vid_%04x&Pid_%04x&Rev_%04x&WPD_OBEX&MI_%02x USB\Vid_%04x&Pid_%04x&Rev_%04x&WPD_OBEX USB\Vid_%04x&Pid_%04x&WPD_OBEX&MI_%02x USB\Vid_%04x&Pid_%04x&WPD_OBEX |
Совместимые ИД | USB\Class_02&WPD_OBEX USB\Class_02 |
Специальная обработка | Параметры реестра, связанные с экземпляром универсального родительского драйвера USB, который управляет составным устройством, определяют, управляются ли интерфейсы OBEX с помощью одного PDO или нескольких PDO. Описание параметров реестра, определяющих, как универсальный родительский драйвер USB перечисляет интерфейсы OBEX, см. в разделе Перечисление коллекций интерфейсов на составных USB-устройствах. |
Модель управления беспроводным телефоном WMCDC
Универсальный родительский драйвер USB не всегда перечисляет коллекции интерфейсов модели управления беспроводными телефонами (WHCM). Параметры реестра, связанные с экземпляром универсального родительского драйвера USB, который управляет коллекцией интерфейсов WHCM, определяют, создает ли универсальный родительский драйвер USB объект физического устройства (PDO) для коллекции интерфейсов. Описание параметров реестра, определяющих, как универсальный родительский драйвер USB перечисляет интерфейсы WHCM, см. в разделе Перечисление коллекций интерфейсов на составных usb-устройствах.
Перечисленные коллекции интерфейсов WHCM имеют следующие свойства.
Свойство | Описание |
---|---|
Справка | Спецификация подкласса CDC универсальной последовательной шины для беспроводных устройств мобильной связи, версия 1.0, раздел 6.1. |
Класс интерфейса master | Класс интерфейса связи (0x02). |
Подкласс интерфейса master | WHCM (0x08). |
Протокол | Нет (0x00). |
Enumerated | Да. |
Связанные интерфейсы | Нет. |
Идентификаторы оборудования | USB\Vid_%04x&Pid_%04x&Rev_%04x&Cdc_08&MI_%02x USB\Vid_%04x&Pid_%04x&Rev_%04x&Cdc_08 USB\Vid_%04x&Pid_%04x&Cdc_08&MI_%02x USB\Vid_%04x&Pid_%04x&Cdc_08 |
Совместимые ИД | USB\Class_02&SubClass_08&Prot_00 USB\Class_02&SubClass_08 USB\Class_02 |
Специальная обработка | Функциональный дескриптор объединения (UFD) определяет интерфейсы, связанные с логическим телефоном. |
Форматы идентификаторов оборудования в предыдущих разделах описывают следующие соглашения:
- Формат printf языка C представляет целые числа. Например, "%04x" означает 4-значное шестнадцатеричное целое число, "%02x" означает 2-значное шестнадцатеричное целое число и т. д.
- Целое число, следующее за строкой "Vid_", представляет собой 4-значное шестнадцатеричное представление кода поставщика, который комитет USB (<www.usb.org>) назначает поставщику.
- Целое число, следующее за строкой "Pid_", представляет собой 4-значное шестнадцатеричное представление кода продукта, назначаемого поставщиком устройству.
- Целое число, следующее за строкой "Rev_", представляет собой 4-значное шестнадцатеричное представление номера редакции устройства.
- Целое число, следующее за строкой "Cdc_", является подклассом интерфейса.
- Целое число, следующее за строкой "Prot_", является номером протокола.
- Целое число, следующее за строкой "MI_", представляет собой 2-значное шестнадцатеричное представление номера интерфейса, которое извлекается из поля bInterfaceNumber дескриптора интерфейса.
Перечисление коллекций интерфейсов на USB-устройствах с идентификаторами IAD
Если составное USB-устройство имеет дескриптор ассоциации интерфейса (IAD) во встроенном ПО, Windows перечисляет коллекции интерфейсов так, как если бы каждая коллекция была одним устройством, и назначает один объект физического устройства (PDO) каждой коллекции интерфейсов и связывает оборудование и совместимые идентификаторы (ID) с PDO. Подробное описание идентификаторов IAD см. в разделе Дескриптор ассоциации интерфейсов USB. В этом разделе описываются идентификаторы оборудования и совместимые идентификаторы (ID), назначенные коллекциям интерфейсов, связанным с IAD.
Идентификаторы оборудования USB-устройств с идентификаторами IAD
USB\VID_v(4)&PID_p(4)&Rev_r(4)&MI_z(2)
USB\VID_v(4)&PID_p(4)&MI_z(2)
В этих идентификаторах оборудования:
- v(4) — это четырехзначный код поставщика, который комитет USB назначает поставщику и извлекается из поля idVendor дескриптора устройства.
- p(4) — это четырехзначный код продукта, который поставщик назначает устройству и извлекается из поля idProduct дескриптора устройства.
- r(4) — это четырехзначный номер выпуска устройства в двоичной десятичной редакции, который поставщик назначает устройству и извлекается из поля bcdDevice дескриптора устройства.
- z(2) — это двухзначный номер интерфейса, извлеченный из поля bFirstInterface IAD.
Совместимые идентификаторы USB-устройств с IAD
USB\Class_c(2)&SubClass_s(2)&Prot_p(2)
USB\Class_c(2)&SubClass_s(2)
USB\Class_c(2)
В этих совместимых идентификаторах c(2), s(2) и p(2) содержат значения, взятые соответственно из полей bFunctionClass, bFunctionSubClass и bFunctionProtocol IAD.
Нельзя использовать IAD рекурсивно для привязки функций функций. В частности, если во встроенном ПО устройства есть дескрипторы IAD, универсальный родительский драйвер не будет группировать интерфейсы по классу звукового устройства, как описано в статье Перечисление коллекций интерфейсов на составных USB-устройствах.
Перечисление коллекций интерфейсов на звуковых устройствах без IAD
Для звуковых устройств операционная система Windows может перечислить группы интерфейсов (коллекции интерфейсов), связанные с функцией, и назначить один объект физического устройства (PDO) каждой группе, даже если устройство не имеет дескриптора ассоциации интерфейса (IAD).
Операционная система группирует интерфейсы составных звуковых устройств в коллекции интерфейсов, если интерфейсы соответствуют следующим условиям:
- Все интерфейсы в коллекции интерфейсов должны быть последовательными. Другими словами, интерфейсы должны находиться рядом друг с другом в памяти встроенного ПО.
- Все интерфейсы в коллекции интерфейсов должны принадлежать классу звукового устройства. Производитель устройства указывает, что интерфейс принадлежит классу звукового устройства, присваивая значение 0x01 полю bInterfaceClass дескриптора интерфейса.
- Каждый интерфейс в коллекции интерфейсов должен иметь подкласс, отличный от первого интерфейса в коллекции. Поле bInterfaceSubClass дескриптора интерфейса указывает подкласс устройства интерфейса.
Если интерфейс не соответствует всем этим трем условиям, Windows попытается перечислить его отдельно, а не группировать с другими интерфейсами класса звука.
Операционная система не группирует интерфейсы аудиоклассов особым образом, если в встроенном ПО устройства присутствует дескриптор связи интерфейса (IAD). Метод IAD всегда является предпочтительным методом группирования USB-интерфейсов.
В этом разделе описываются аппаратные и совместимые идентификаторы (ID), связанные с PDO, созданным операционной системой для коллекции интерфейсов, интерфейсы которой принадлежат к классу звукового устройства.
Идентификаторы оборудования звуковых устройств без IAD
USB\VID_v(4)&PID_p(4)&Rev_r(4)&MI_z(2)
USB\VID_v(4)&PID_p(4)&MI_z(2)
В этих идентификаторах оборудования:
- v(4) — это четырехзначный код поставщика, который комитет по стандартам USB назначает поставщику и извлекается из поля idVendor дескриптора устройства.
- p(4) — это четырехзначный код продукта, который поставщик назначает устройству и извлекается из поля idProduct дескриптора устройства.
- r(4) — это четырехзначный номер выпуска устройства в двоичной десятичной редакции, который поставщик назначает устройству и извлекается из поля bcdDevice дескриптора устройства.
- z(2) — это двухзначный номер интерфейса, извлекаемый из поля bInterfaceNumber дескриптора интерфейса.
Совместимые идентификаторы звуковых устройств без IAD
USB\Class_c(2)&SubClass_s(2)&Prot_p(2)
USB\Class_c(2)&SubClass_s(2)
USB\Class_c(2)
В этих совместимых идентификаторах c(2), s(2) и p(2) содержат значения, взятые соответственно из полей bInterfaceClass, bInterfaceSubClass и bInterfaceProtocol первого дескриптора интерфейса USB в каждой коллекции интерфейсов.
Связанные темы
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по