Windows.Devices.Usb Пространство имен

Это пространство имен определяет среда выполнения Windows классов, которые приложение UWP может использовать для взаимодействия с устройствами WinUSB. Эти устройства обрабатываются драйвером папки "Входящие" winusb.sys и идентифицируются определенным дескриптором ОС Майкрософт.

Допустимое устройство WinUSB будет иметь совместимый идентификатор USB\MS_COMP_WINUSB

Совместимые идентификаторы из диспетчер устройств для устройства SuperMUTT WinUSB

Поддержка устройств

Это пространство имен поддерживает большинство устройств WinUSB. Однако он не предоставляет доступ к USB-устройствам со следующими классами устройств:

  • Аудио (0x01)
  • HID (0x03)
  • Изображение (0x06)
  • Принтер (0x07)
  • Хранилище массовых данных (0x08)
  • Смарт-карта (0x0B)
  • Аудио и видео (0x10)
  • Беспроводной контроллер (0xE0)

Возможности USB-устройства

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

С Windows 10, версия 1809 (обновление за октябрь 2018 г.)

<DeviceCapability Name="usb"/>

До Windows 10, версия 1809 (обновление за октябрь 2018 г.)

Начиная с версии 1809, ProductId VendorId/ и тип функции больше не нужно указывать, и они будут игнорироваться в более новых системах. Если используется система ниже 1809, ознакомьтесь с устаревшими возможностями USB-устройств.

Устранение неполадок

  • Убедитесь, что в манифесте приложения есть возможность USB (usb).
  • Убедитесь, что пользователь предоставил приложению разрешение на использование USB-устройств.
  • Убедитесь, что тип устройства не указан как недоступный.
  • Внутренние устройства компьютера (DEVPKEY_Device_InLocalMachineContainer == TRUE) обычно недоступны, если только они не работают на номере SKU со встроенным режимом и lowLevelDevices возможностями.
  • Устройства со стеками, содержащими верхние и нижние драйверы фильтров, как правило, недоступны . Они иногда добавляются сторонними разработчиками для включения дополнительных функций для пользовательского оборудования.
    • Ограничение устройств частично определяется winusb.sys во время перечисления устройств, которое может задать для свойства DEVPKEY_DeviceInterface_Restricted интерфейса устройства значение TRUE в интерфейсе GUID_DEVINTERFACE_WINUSB_WINRT устройства WinUSB на основе наличия фильтров устройства или класса.
    • Наличие драйверов UpperFilterLowerFilter/ устройства можно определить с помощью DeviceManager, выполнив поиск UpperFilters свойств и LowerFilters .
    • Наличие драйверов класса WinUSB UpperFilter/LowerFilter можно определить с помощью DeviceManager, выполнив поиск Class upper filters свойств и Class lower filters .
    • Свойства интерфейса устройства можно проверить путем вызова CM_Get_Device_Interface_Property , где pszDeviceInterface — это та же строка, которая была бы передана в FromIdAsync.
  • Эти ограничения можно обойти при создании пользовательского устройства, работая с разработчиком драйвера для создания приложения поддержки оборудования.

Классы

UsbBulkInEndpointDescriptor

Дескриптор конечной точки для массовой конечной точки USB IN. Дескриптор задает тип конечной точки, направление, число, а также максимальное число байтов, которые можно считывать из конечной точки в рамках одной передачи.

UsbBulkInPipe

Представляет канал, открытый базовым USB-драйвером для взаимодействия с конечной точкой массовой передачи ДАННЫХ USB устройства. Приложение может получить входной поток из канала, а данные доступа считываются из конечной точки.

UsbBulkOutEndpointDescriptor

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

UsbBulkOutPipe

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

UsbConfiguration

Предоставляет сведения о конфигурации USB, ее дескрипторах и интерфейсах, определенных в этой конфигурации. Описание конфигурации USB см. в разделе 9.6.3 спецификации универсальной последовательной шины (USB).

UsbConfigurationDescriptor

Получает сведения из первых 9 байт дескриптора конфигурации USB. Сведения включают возможности питания устройства, когда конфигурация активна, и количество интерфейсов, включенных в эту конфигурацию. Описание дескриптора конфигурации см. в разделе 9.6.3 Спецификация универсальной последовательной шины. Сведения о полях дескриптора см. в разделе:

  • Таблица 9.15 в спецификации универсальной последовательной шины 3.0
  • Таблица 9.10 в спецификации универсальной последовательной шины (версия 2.0)
UsbControlRequestType

Предоставляет сведения о передаче элементов управления через USB, типе запроса на управление, о том, отправляются ли данные с узла или на узел, а также о получателе запроса на устройстве.

UsbDescriptor

Предоставляет сведения о типе дескриптора, его размере (в байтах) и возвращает данные дескриптора.

UsbDevice

Представляет USB-устройство. Объект предоставляет методы и свойства, которые приложение может использовать для перечисления устройств WinUSB и отправки передачи элементов управления IN и OUT.

UsbDeviceClass

Позволяет приложению получить строку расширенного синтаксиса запросов (AQS), указав код класса, код подкласса и код протокола, определенный устройством. Свойства в этом классе передаются при вызове Метода GetDeviceClassSelector.

UsbDeviceClasses

Предоставляет способ получения объекта UsbDeviceClass на основе класса USB-устройства устройства. Свойства, определенные в этом классе, представляют поддерживаемые классы USB-устройств и возвращают объекты UsbDeviceClass .

Сведения о классах USB-устройств см. на официальном веб-сайте USB для утвержденных документов спецификации классов.

UsbDeviceDescriptor

Получает сведения из дескриптора USB-устройства устройства. Описание дескриптора устройства см. в таблице 9.8 спецификации универсальной последовательной шины.

UsbEndpointDescriptor

Получает сведения из дескриптора конечной точки USB конечной точки, такие как тип, направление и номер конечной точки. Этот объект также получает определенные дескрипторы конечной точки на основе типа конечной точки. Описание дескриптора конечной точки см. в разделе 9.6.5 спецификации универсальной последовательной шины:

  • Таблица 9.18 в спецификации универсальной последовательной шины 3.0
  • Таблица 9.13 в спецификации универсальной последовательной шины (версия 2.0)
UsbInterface

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

UsbInterfaceDescriptor

Описывает альтернативный параметр USB (интерфейса) в дескрипторе интерфейса. Описание дескриптора интерфейса см. в разделе 9.6.5 спецификации универсальной последовательной шины:

  • Таблица 9.15 в спецификации универсальной последовательной шины 3.0
  • Таблица 9.12 в спецификации универсальной последовательной шины (версия 2.0)
UsbInterfaceSetting

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

UsbInterruptInEndpointDescriptor

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

UsbInterruptInEventArgs

Представляет объект , который передается в качестве параметра обработчику событий для события DataReceived .

UsbInterruptInPipe

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

UsbInterruptOutEndpointDescriptor

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

UsbInterruptOutPipe

Представляет канал, который открывается базовым USB-драйвером для связи с конечной точкой usb-прерывания out устройства. Объект предоставляет доступ к потоку вывода, в который приложение может записывать данные для отправки в конечную точку.

UsbSetupPacket

Описывает пакет установки для передачи элементов управления ЧЕРЕЗ USB. Описание пакета установки см. в таблице 9.2 спецификации универсальной последовательной шины (USB).

Перечисления

UsbControlRecipient

Определяет константы, указывающие получателя передачи элемента управления USB. Получатель определяется в пакете установки запроса на управление. См. таблицу 9.2 раздела 9.3 спецификации универсальной последовательной шины (USB) (www.usb.org).

UsbControlTransferType

Определяет константы, указывающие тип передачи элементов управления USB: standard, class или vendor.

UsbEndpointType

Определяет константы, указывающие тип конечной точки USB: контрольная, массовая, изохронная или прерывание.

UsbReadOptions

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

UsbTransferDirection

Определяет константы, указывающие направление передачи по USB: IN или OUT.

UsbWriteOptions

Определяет константы для флагов конфигурации, которые можно задать для USB-канала, который узел открывает для конечной точки USB OUT.

См. также раздел