Общие сведения об отправке передачи данных ПО USB в драйверах USB-клиента

В статьях этого раздела содержатся сведения о USB-каналах и URB для запросов ввода-вывода, а также описывается, как драйвер клиента может использовать интерфейсы драйверов устройств (DDIs) для передачи данных на USB-устройство и с его помощью.

Передача выполняется при каждом перемещении данных между хост-контроллером и USB-устройством. Как правило, передачи по USB можно разделить на передачу элементов управления и передачу данных. Все USB-устройства должны поддерживать передачу управления и могут поддерживать конечные точки для передачи данных. Каждый тип передачи связан с типом конечной точки USB (буфером на устройстве). Передача управления связана с конечной точкой по умолчанию, а для передачи данных используются однонаправленные конечные точки. Типы передачи данных используют прерывания, массовые и изохронные конечные точки. Стек драйверов USB создает канал связи, называемый каналом для каждой конечной точки, поддерживаемой устройством. Одним из концов канала является конечная точка устройства. Другим концом канала всегда является хост-контроллер.

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

Сведения о конфигурации устройства см. в разделах Выбор конфигурации для USB-устройства и Выбор альтернативного параметра в ИНТЕРФЕЙСе USB.

После настройки клиентского драйвера устройство драйвер имеет доступ к дескрипторам канала, созданным стеком USB-драйверов для каждой конечной точки в выбранном альтернативном параметре. Для передачи данных в конечную точку драйвер клиента создает запрос путем форматирования URB, соответствующего типу запроса.

В этом разделе

Статья Описание
Как отправить передачу элементов управления ЧЕРЕЗ USB В этой статье объясняется структура передачи элемента управления и способ отправки клиентского драйвера на устройство запроса элемента управления.
Перечисление USB-каналов В этой статье представлен обзор USB-каналов и описаны шаги, необходимые драйверу USB-клиента для получения дескрипторов каналов из стека драйверов USB.
Использование непрерывного средства чтения для чтения данных из USB-канала В этой статье описывается объект непрерывного чтения, предоставляемый WDF. Процедуры в этой статье содержат пошаговые инструкции по настройке объекта и его использованию для чтения данных из USB-канала.
Как отправлять запросы на массовую передачу ПО USB В этой статье представлен краткий обзор массовой передачи данных по USB. В нем также содержатся пошаговые инструкции о том, как драйвер клиента может отправлять и получать массовые данные с устройства.
Открытие и закрытие статических потоков в конечной точке массовой передачи USB В этой статье рассматриваются возможности статических потоков и объясняется, как драйвер USB-клиента может открывать и закрывать потоки в массовой конечной точке устройства USB 3.0.
Передача данных в изохронные конечные точки USB В этой статье описывается, как драйвер клиента может создать блок запросов USB (URB) для передачи данных в изохронные конечные точки на USB-устройстве и из нее.
Отправка связанных многомерных выражений В этой статье вы узнаете о возможности цепочек MDL в стеке USB-драйверов и о том, как драйвер клиента может отправлять буфер передачи в виде цепочки структуры MDL .
Восстановление после ошибок USB-канала В этой статье содержатся сведения о действиях, которые можно выполнить при сбое передачи данных на USB-канал. Механизмы, описанные в этой статье, охватывают операции прерывания, сброса и циклического переноса в массовых, прерываниях и изохронных каналах.
Выделение пропускной способности USB В этом разделе содержатся рекомендации по тщательному управлению пропускной способностью USB.