Первые шаги по разработке драйвера USB-клиента

В этом разделе приводятся основные понятия и средства разработки драйверов USB. Этот раздел относится к разработчикам, новым для разработки драйверов, которые хотят реализовать драйвер для USB-устройства, для которой корпорация Майкрософт не предоставляет встроенный драйвер. Эти драйверы называются драйвером USB-клиента в этой документации. В разделах этого раздела описываются высокоуровневые понятия USB и пошаговые инструкции по выполнению распространенных задач драйвера USB-клиента. Подробные сведения об этих понятиях см. в спецификациях USB в USB-документах.

Разработчики драйверов должны иметь опыт программирования на языке программирования C++ и понимать понятия указателей функций, функций обратного вызова и обработчиков событий. При написании драйвера на основе User-Mode Driver Framework разработчику необходимо ознакомиться с C++ и COM.

План обучения для разработчиков драйверов USB-клиентов

  1. Ознакомьтесь со спецификацией USB 3.2.

    • Узнайте о спецификации отрасли и различных компонентах архитектуры: устройстве, узловом контроллере и концентраторе. Важно понять модель потока данных, как узел и устройство взаимодействуют друг с другом, а также формат запросов, которые ожидает устройство.
  2. Получите тестовое USB-устройство.

    • Устройство USB и его спецификация оборудования. Спецификация описывает возможности устройств и поддерживаемые команды поставщика. Используйте спецификацию для определения функциональности драйвера устройства и связанных решений по проектированию.

    • Если вы новичок в разработке USB-драйверов, используйте учебный комплект OSR USB FX2. Набор наиболее подходит для изучения примеров 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