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

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

Разработчики драйверов должны иметь опыт программирования на языке программирования C++ и понимать понятия указателей функций, функций обратного вызова и обработчиков событий. При написании драйвера на основе среда выполнения платформы драйвера режима пользователя разработчику необходимо ознакомиться с 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 в Windows.
    • Основные понятия для всех разработчиков драйверов.
    • Основные понятия для всех разработчиков USB.
    • Узлы устройств и стеки устройств.
    • Разработка драйверов с помощью Windows Driver Foundation написана Пенни Орвик и Гай Смит. Дополнительные сведения см. в статье "Разработка драйверов с помощью WDF".
    • Примеры USB-драйвера.
    • Основные сведения о работе драйверов в операционных системах Windows. Знание основных принципов поможет принять соответствующие решения по проектированию и оптимизировать процесс разработки.
    • Различие между моделями архитектуры драйверов в режиме пользователя и режима ядра.
    • Сведения о загрузке драйверов и организации устройств windows самонастраивающийся (PnP) на узлах дерева устройств и устройств. Разработчик также должен понять, как диспетчер PnP создает стеки устройств и где драйвер и его объекты устройства помещаются в стек устройств.
  6. Подготовьте среду разработки и отладки.

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

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

    • Отправьте стандартные запросы управления и команды поставщика на устройство. Дополнительные сведения см. в статье "Отправка передачи USB-элемента управления".
  9. Расширьте драйвер, чтобы использовать целевые объекты WDF USB-ввода-вывода для передачи данных USB.

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

  • Блог группы microsoft Windows USB Core

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

  • Списки OSR Online

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

  • Разработка оборудования в Центре разработки для Windows

    Комплект драйверов Windows, убедитесь, что продукт является надежным и совместимым с Windows с помощью комплекта лабораторий оборудования Windows, изучите примеры драйверов Windows.