Первые шаги по разработке драйвера 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-драйверов и концепциями разработки драйверов, предоставляемыми корпорацией Майкрософт.

  6. Подготовьте среду разработки и отладки.

  7. Напишите свой первый драйвер.

  8. Расширьте драйвер, отправив запрос на передачу элементов управления USB.

  9. Расширьте драйвер, чтобы использовать целевые объекты ввода-вывода WDF USB для передачи данных по USB.

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