- Обзор разработки драйверов Windows для эмулированных USB-устройств (UDE)
- Средства разработки и двоичные файлы, предоставляемые Корпорацией Майкрософт
- Архитектура UDE
- Написание драйверов для эмулированного хост-контроллера и устройств
- Разделы справочника по программированию
- Связанные темы
- Первые шаги по разработке драйвера USB-клиента
- Схема обучения для разработчиков драйверов USB-клиента
- Ресурсы сообщества для USB
Обзор разработки драйверов Windows для эмулированных USB-устройств (UDE)
В этой статье описывается поддержка эмулированного USB-устройства (UDE) в операционной системе Windows для разработки драйвера эмулированного хост-контроллера универсальной последовательной шины (USB) и подключенного виртуального USB-устройства. Оба компонента объединяются в один драйвер KMDF, который взаимодействует с предоставленным Корпорацией Майкрософт расширением класса эмуляции USB-устройств (UdeCx).
Средства разработки и двоичные файлы, предоставляемые Корпорацией Майкрософт
Пакет драйверов Windows (WDK) содержит ресурсы, необходимые для разработки драйверов, такие как заголовки, библиотеки, средства и примеры.
Чтобы написать драйвер контроллера функций, вам потребуется:
- UdeCx ( udecx.sys) расширение WDF, используемое драйвером функции. Это расширение входит в состав Windows.
- Ссылка на библиотеку заглушки (Udecxstub.lib). Библиотека заглушки находится в WDK.
- Включите Udecx.h, предоставленный в WDK.
Архитектура UDE
Написание драйверов для эмулированного хост-контроллера и устройств
Ознакомьтесь с объектами и дескрипторами UDE. Дополнительные сведения об объектах WDF см. в статье Общие сведения об объектах платформы.
Узнайте о поведении UDE, о том, как он взаимодействует с драйвером клиента, а также о функциях, которые должен реализовать драйвер клиента.
Разделы справочника по программированию
Связанные темы
Первые шаги по разработке драйвера USB-клиента
В этом разделе рассматриваются основные понятия и средства разработки usb-драйверов. Этот раздел относится к разработчикам, не знакомым с разработкой драйверов, которые хотят реализовать драйвер для USB-устройства, для которой корпорация Майкрософт не предоставляет встроенный драйвер. В этой документации эти драйверы называются драйвером USB-клиента . В разделах этого раздела описываются высокоуровневые понятия USB и приводятся пошаговые инструкции по выполнению распространенных задач драйвера USB-клиента. Подробные сведения об этих понятиях см. в разделе Спецификации USB в документации по USB.
Разработчики драйверов должны иметь опыт программирования на языке программирования C++ и понимать основные понятия указателей функций, функций обратного вызова и обработчиков событий. При написании драйвера на основе платформы User-Mode Driver Framework разработчик должен быть знаком с C++ и COM.
Схема обучения для разработчиков драйверов USB-клиента
- Ознакомьтесь со спецификацией USB 3.2.
- Узнайте об отраслевых спецификациях и различных компонентах (устройство, контроллер узла и концентратор) архитектуры. Важно понимать модель потока данных, то, как узел и устройство взаимодействуют друг с другом, а также формат запросов, ожидаемых устройством.
- Получите тестовое USB-устройство.
- У вас есть USB-устройство и его спецификация оборудования. Спецификация описывает возможности устройства и поддерживаемые команды поставщика. Используйте спецификацию, чтобы определить функциональные возможности драйвера устройства и связанные с ним решения по проектированию.
- Запустите комплект обучения OSR USB FX2, если не знакомы с разработкой USB-драйверов. Комплект является наиболее подходящим для изучения примеров USB, включенных в этот набор документации.
- У вас есть устройства Microsoft USB Test Tool (MUTT). Оборудование MUTT можно приобрести у JJG Technologies. На устройстве не установлено встроенное ПО. Чтобы установить встроенное ПО, скачайте программный пакет MUTT. Дополнительные сведения см. в документации по пакету.
- Изучите макет USB-устройства и связанные дескрипторы USB.
- Опишите возможности устройства, считывая дескриптор конфигурации, дескрипторы интерфейса для каждого поддерживаемого альтернативного параметра и их дескрипторы конечных точек. С помощью USBView разработчик может просматривать все USB-контроллеры и подключенные к ним USB-устройства, а также проверять конфигурацию устройства.
- Выбор модели драйвера для разработки драйвера USB-клиента
- Определите, должен ли драйвер быть пользовательским драйвером, или используйте один из драйверов, предоставляемых Корпорацией Майкрософт, на основе структуры целевого устройства. Выберите оптимальную модель драйвера и опишите функции, поддерживаемые каждой моделью.
- Ознакомьтесь со стеком USB-драйверов, предоставляемым корпорацией Майкрософт, и основными понятиями разработки драйверов.
- Usb-драйверы на стороне узла в Windows.
- Основные понятия для всех разработчиков драйверов.
- Основные понятия для всех разработчиков USB.
- Узлы устройств и стеки устройств.
- Разработка драйверов с помощью Windows Driver Foundation , написанная Пенни Орвик и Гай Смит. Дополнительные сведения см. в статье Разработка драйверов с помощью WDF.
- Примеры драйверов USB.
- Понимание основ работы драйверов в операционных системах Windows. Знание основ поможет принять соответствующие решения по проектированию и упростить процесс разработки.
- Различает модели архитектуры драйвера пользовательского режима и режима ядра.
- Сведения о загрузке драйверов и о том, как Windows упорядочивает устройства Plug and Play (PnP) в дереве устройств и узлах устройств. Разработчик также должен понимать, как диспетчер PnP создает стеки устройств и где драйвер и его объекты устройств размещаются в стеке устройств.
- Подготовьте среду разработки и отладки.
- Установите последнюю версию пакета драйверов Windows (WDK).
- Установите Microsoft Visual Studio.
- Получение сведений о настройке для отладки.
- Убедитесь, что заголовки и библиотеки, необходимые драйверу USB-клиента , доступны.
- При написании отладки драйвера в режиме ядра на хост-компьютерах и целевых компьютерах по сети Ethernet необходимо настроить кабель 1394, отладочный кабель USB 2.0 или 3.0 или кабель модема null.
- При написании драйвера пользовательского режима отладчики пользовательского режима доступны в среде Microsoft Visual Studio. Разработчик должен знать , как подключиться к процессу или запустить процесс в отладчике.
- Напишите свой первый драйвер.
- Как написать первый драйвер USB-клиента (KMDF).
- Как написать первый драйвер USB-клиента (UMDF).
- Запись, сборка и установка первого драйвера USB-клиента с помощью шаблонов USB, входящих в состав Visual Studio 2012. Разработчик должен иметь возможность описывать драйвер платформы, устройства и объекты очередей, а также понимать, как платформа взаимодействует с вашим драйвером.
- Расширьте свой драйвер, отправив запрос на передачу элементов управления USB.
- Отправляйте стандартные запросы на управление и команды поставщика на устройство. Дополнительные сведения см. в разделе Отправка usb-элемента управления.
- Расширьте драйвер, чтобы использовать целевые объекты ввода-вывода WDF USB для передачи данных по USB.
- Расширьте возможности драйвера для выполнения распространенных задач, как описано в разделе Общие задачи для драйверов USB-клиента.
Ресурсы сообщества для USB
Блог группы разработчиков Microsoft Windows USB Core Ознакомьтесь с записями, написанными microsoft USB Team. В этом блоге основное внимание уделяется стеку драйверов WINDOWS, который работает с различными контроллерами USB-узла и USB-концентраторами на компьютере с Windows. Полезный ресурс для разработчиков драйверов USB-клиента и разработчиков оборудования USB понять реализацию стека драйверов, устранить распространенные проблемы и объяснить, как использовать средства для сбора файлов трассировок и журналов.
Списки OSR Online
Список обсуждений, управляемый OSR Online для разработчиков драйверов в режиме ядра.