Начало работы с разработкой USB
Устройство универсальной последовательной шины (USB) определяет свои возможности и функции с помощью конфигураций, интерфейсов, альтернативных параметров и конечных точек. В этом разделе представлен общий обзор этих понятий. Дополнительные сведения см. в спецификациях USB в документации по универсальной последовательной шине.
В этом разделе
Раздел | Описание |
---|---|
Макет USB-устройства | USB-устройство определяет свои возможности и функции с помощью конфигураций, интерфейсов, альтернативных параметров и конечных точек. В этом разделе представлен общий обзор этих понятий. |
Стандартные дескрипторы USB | USB-устройство предоставляет сведения о себе в структурах данных, называемых дескрипторами USB. В этом разделе содержатся сведения об дескрипторов устройства, конфигурации, интерфейсах и конечных точках, а также способах их получения с USB-устройства. |
Конечные точки USB и их каналы | USB-устройство имеет конечные точки, которые используются для передачи данных. На стороне узла конечные точки представлены каналами. В этом разделе эти два термина различаются. |
USB в Windows — вопросы и ответы | В этом разделе представлены часто задаваемые вопросы для разработчиков драйверов, которые не знакомы с разработкой и интеграцией USB-устройств и драйверов с операционными системами Windows. |
Распространенные сценарии ИСПОЛЬЗОВАНИЯ USB
1— получение дескриптора устройства для обмена данными и использование полученного дескриптора или объекта для отправки данных.
Клиентский драйвер | Приложение UWP | Классическое приложение Windows |
---|---|---|
KMDF: WdfUsbTargetDeviceCreateWithParameters UMDF: IWDFUsbTargetDevice |
UsbDevice Подключение к USB-устройству |
WinUsb_Initialize Создание классического приложения для Windows на основе шаблона WinUSB |
Получение дескриптора USB для получения сведений о конфигурациях устройства, интерфейсах, параметрах и их конечных точках.
2. Настройте устройство для выбора активной конфигурации USB и параметра для каждого интерфейса.
Клиентский драйвер | Приложение UWP | Классическое приложение Windows |
---|---|---|
KMDF: WdfUsbTargetDeviceSelectConfig WdfUsbTargetDeviceCreateUrb USBD_SelectConfigUrbAllocateAndBuild WdfUsbInterfaceSelectSetting Выбор конфигурации для USB-устройства. Выбор альтернативного параметра в ИНТЕРФЕЙСе USB. UMDF: Выбор конфигурации не поддерживается IWDFUsbInterface::SelectSetting |
UsbInterfaceSetting.SelectSettingAsync Выбор параметра интерфейса USB |
WinUsb_SetCurrentAlternateSetting |
3. Отправка передачи элементов управления для настройки устройства и выполнения команд поставщика, относящихся к конкретному устройству.
4. Отправка массовых передач, обычно используемых запоминающими устройствами, которые передают большой объем данных.
5 — отправка передачи прерываний. Данные считываются для получения данных об аппаратных прерываниях.
Клиентский драйвер | Приложение UWP | Классическое приложение Windows |
---|---|---|
То же, что и массовая передача | UsbInterruptInPipe.DataReceived UsbInterruptOutPipe.OutputStream Отправка запроса на передачу прерывания USB |
То же, что и массовая передача |
6 — отправка изохронной передачи, которая в основном используется для устройств потоковой передачи мультимедиа.
Клиентский драйвер | Приложение UWP | Классическое приложение Windows |
---|---|---|
KMDF: WdfUsbTargetDeviceCreateIsochUrb Передача данных в изохронные конечные точки USB UMDF: Не поддерживается |
Не поддерживается | WinUsb_RegisterIsochBuffer WinUsb_UnregisterIsochBuffer WinUsb_WriteIsochPipeAsap WinUsb_ReadIsochPipeAsap WinUsb_WriteIsochPipe WinUsb_ReadIsochPipe WinUsb_GetCurrentFrameNumber WinUsb_GetAdjustedFrameNumber Отправка изохронной передачи по USB из классического приложения WinUSB |
7 — выборочная приостановка USB,чтобы разрешить устройству перейти в состояние низкого энергопотребления и вернуть устройство в рабочее состояние.
Клиентский драйвер | Приложение UWP | Классическое приложение Windows |
---|---|---|
KMDF: WDF_DEVICE_POWER_POLICY_IDLE_SETTINGS WdfDeviceAssignS0IdleSettings UMDF: IWDFUsbTargetDevice::SetPowerPolicy IWDFDevice2::AssignS0IdleSettings IWDFDevice3::AssignS0IdleSettingsEx Как отправить устройство для выборочной приостановки |
Не поддерживается | WinUsb_SetPowerPolicy Управление питанием WinUSB |