Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этом разделе приводятся основные понятия и средства разработки драйверов USB. Этот раздел относится к разработчикам, новым для разработки драйверов, которые хотят реализовать драйвер для USB-устройства, для которой корпорация Майкрософт не предоставляет встроенный драйвер. Эти драйверы называются драйвером USB-клиента в этой документации. В разделах этого раздела описываются высокоуровневые понятия USB и пошаговые инструкции по выполнению распространенных задач драйвера USB-клиента. Подробные сведения об этих понятиях см. в спецификациях USB в USB-документах.
Разработчики драйверов должны иметь опыт программирования на языке программирования C++ и понимать понятия указателей функций, функций обратного вызова и обработчиков событий. При написании драйвера на основе User-Mode Driver Framework разработчику необходимо ознакомиться с C++ и COM.
План обучения для разработчиков драйверов USB-клиентов
Ознакомьтесь со спецификацией USB 3.2.
- Узнайте о спецификации отрасли и различных компонентах архитектуры: устройстве, узловом контроллере и концентраторе. Важно понять модель потока данных, как узел и устройство взаимодействуют друг с другом, а также формат запросов, которые ожидает устройство.
Получите тестовое USB-устройство.
Устройство USB и его спецификация оборудования. Спецификация описывает возможности устройств и поддерживаемые команды поставщика. Используйте спецификацию для определения функциональности драйвера устройства и связанных решений по проектированию.
Если вы новичок в разработке USB-драйверов, используйте учебный комплект OSR USB FX2. Набор наиболее подходит для изучения примеров USB, включенных в этот набор документации.
Имеются устройства Microsoft USB Test Tool (MUTT). Оборудование MUTT можно приобрести с помощью JJG Technologies. Устройство не имеет установленного встроенного ПО. Чтобы установить встроенное ПО, скачайте пакет программного обеспечения MUTT. Дополнительные сведения см. в документации, включенной в пакет.
Изучите макет USB-устройства и связанные дескрипторы USB.
- Опишите возможности устройства, считывая дескриптор конфигурации, дескрипторы интерфейса для каждого поддерживаемого альтернативного параметра и дескрипторы конечных точек. С помощью USBView разработчик может просматривать все USB-контроллеры и USB-устройства, подключенные к ним, а также проверять конфигурацию устройства.
Выбор модели драйверов для разработки драйвера USB-клиента
- Определите, должен ли драйвер быть пользовательским драйвером или использовать один из предоставленных Корпорацией Майкрософт драйверов на основе дизайна целевого устройства. Выберите лучшую модель драйвера и опишите функции, поддерживаемые каждой моделью.
Ознакомьтесь со стеком USB драйверов и основными понятиями разработки драйверов, предоставляемых корпорацией Майкрософт.
- Драйверы на стороне хоста USB в Windows.
- Основные понятия для всех разработчиков драйверов.
- Основные понятия для всех разработчиков USB.
- Узлы устройств и стеки устройств.
- Разработка драйверов с помощью Windows Driver Foundation: справочная книга Пенни Орвик и Гай Смит.
- Примеры 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. Блог посвящен стеку USB-драйверов Windows, который работает с различными контроллерами USB-узла и USB-концентраторами, найденными на компьютере с Windows. Полезный ресурс, помогающий разработчикам драйверов USB и разработчикам USB-оборудования понять реализацию стека драйверов, устранить распространенные проблемы и объяснить, как использовать средства для сбора трассировок и файлов журналов.
-
Список обсуждений, управляемый OSR Online для разработчиков драйверов в режиме ядра.
Windows Dev-Center для разработки оборудования
Комплект драйверов Windows, убедитесь, что продукт является надежным и совместимым с Windows с помощью комплекта лабораторий оборудования Windows, изучите примеры драйверов Windows.