Программирование usb драйверов windows

Обзор разработки драйверов 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-клиента

  1. Ознакомьтесь со спецификацией USB 3.2.
    • Узнайте об отраслевых спецификациях и различных компонентах (устройство, контроллер узла и концентратор) архитектуры. Важно понимать модель потока данных, то, как узел и устройство взаимодействуют друг с другом, а также формат запросов, ожидаемых устройством.
  2. Получите тестовое USB-устройство.
    • У вас есть USB-устройство и его спецификация оборудования. Спецификация описывает возможности устройства и поддерживаемые команды поставщика. Используйте спецификацию, чтобы определить функциональные возможности драйвера устройства и связанные с ним решения по проектированию.
    • Запустите комплект обучения OSR USB FX2, если не знакомы с разработкой USB-драйверов. Комплект является наиболее подходящим для изучения примеров USB, включенных в этот набор документации.
    • У вас есть устройства Microsoft USB Test Tool (MUTT). Оборудование MUTT можно приобрести у JJG Technologies. На устройстве не установлено встроенное ПО. Чтобы установить встроенное ПО, скачайте программный пакет MUTT. Дополнительные сведения см. в документации по пакету.
  3. Изучите макет USB-устройства и связанные дескрипторы USB.
    • Опишите возможности устройства, считывая дескриптор конфигурации, дескрипторы интерфейса для каждого поддерживаемого альтернативного параметра и их дескрипторы конечных точек. С помощью USBView разработчик может просматривать все USB-контроллеры и подключенные к ним USB-устройства, а также проверять конфигурацию устройства.
  4. Выбор модели драйвера для разработки драйвера USB-клиента
    • Определите, должен ли драйвер быть пользовательским драйвером, или используйте один из драйверов, предоставляемых Корпорацией Майкрософт, на основе структуры целевого устройства. Выберите оптимальную модель драйвера и опишите функции, поддерживаемые каждой моделью.
  5. Ознакомьтесь со стеком USB-драйверов, предоставляемым корпорацией Майкрософт, и основными понятиями разработки драйверов.
    • Usb-драйверы на стороне узла в Windows.
    • Основные понятия для всех разработчиков драйверов.
    • Основные понятия для всех разработчиков USB.
    • Узлы устройств и стеки устройств.
    • Разработка драйверов с помощью Windows Driver Foundation , написанная Пенни Орвик и Гай Смит. Дополнительные сведения см. в статье Разработка драйверов с помощью WDF.
    • Примеры драйверов USB.
    • Понимание основ работы драйверов в операционных системах Windows. Знание основ поможет принять соответствующие решения по проектированию и упростить процесс разработки.
    • Различает модели архитектуры драйвера пользовательского режима и режима ядра.
    • Сведения о загрузке драйверов и о том, как Windows упорядочивает устройства Plug and Play (PnP) в дереве устройств и узлах устройств. Разработчик также должен понимать, как диспетчер PnP создает стеки устройств и где драйвер и его объекты устройств размещаются в стеке устройств.
  6. Подготовьте среду разработки и отладки.
    • Установите последнюю версию пакета драйверов Windows (WDK).
    • Установите Microsoft Visual Studio.
    • Получение сведений о настройке для отладки.
    • Убедитесь, что заголовки и библиотеки, необходимые драйверу USB-клиента , доступны.
    • При написании отладки драйвера в режиме ядра на хост-компьютерах и целевых компьютерах по сети Ethernet необходимо настроить кабель 1394, отладочный кабель USB 2.0 или 3.0 или кабель модема null.
    • При написании драйвера пользовательского режима отладчики пользовательского режима доступны в среде Microsoft Visual Studio. Разработчик должен знать , как подключиться к процессу или запустить процесс в отладчике.
  7. Напишите свой первый драйвер.
    • Как написать первый драйвер USB-клиента (KMDF).
    • Как написать первый драйвер USB-клиента (UMDF).
    • Запись, сборка и установка первого драйвера USB-клиента с помощью шаблонов USB, входящих в состав Visual Studio 2012. Разработчик должен иметь возможность описывать драйвер платформы, устройства и объекты очередей, а также понимать, как платформа взаимодействует с вашим драйвером.
  8. Расширьте свой драйвер, отправив запрос на передачу элементов управления USB.
    • Отправляйте стандартные запросы на управление и команды поставщика на устройство. Дополнительные сведения см. в разделе Отправка usb-элемента управления.
  9. Расширьте драйвер, чтобы использовать целевые объекты ввода-вывода WDF USB для передачи данных по USB.
    • Расширьте возможности драйвера для выполнения распространенных задач, как описано в разделе Общие задачи для драйверов USB-клиента.
Читайте также:  Оператора if else программирование

Ресурсы сообщества для USB

Блог группы разработчиков Microsoft Windows USB Core Ознакомьтесь с записями, написанными microsoft USB Team. В этом блоге основное внимание уделяется стеку драйверов WINDOWS, который работает с различными контроллерами USB-узла и USB-концентраторами на компьютере с Windows. Полезный ресурс для разработчиков драйверов USB-клиента и разработчиков оборудования USB понять реализацию стека драйверов, устранить распространенные проблемы и объяснить, как использовать средства для сбора файлов трассировок и журналов.

Списки OSR Online
Список обсуждений, управляемый OSR Online для разработчиков драйверов в режиме ядра.

Источник

Оцените статью