Windows.Devices.Usb Пространство имен
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Это пространство имен определяет среда выполнения Windows классов, которые приложение UWP может использовать для взаимодействия с устройствами WinUSB. Эти устройства обрабатываются драйвером папки "Входящие" winusb.sys
и идентифицируются определенным дескриптором ОС Майкрософт.
Допустимое устройство WinUSB будет иметь совместимый идентификатор USB\MS_COMP_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 Спецификация универсальной последовательной шины. Сведения о полях дескриптора см. в разделе:
|
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 спецификации универсальной последовательной шины:
|
UsbInterface |
Предоставляет сведения об интерфейсе USB, включая его конечные точки, количество альтернативных параметров, поддерживаемых интерфейсом, и возвращает полный набор дескрипторов для этих параметров. Он также получает каналы, связанные с конечными точками, поддерживаемыми интерфейсом. |
UsbInterfaceDescriptor |
Описывает альтернативный параметр USB (интерфейса) в дескрипторе интерфейса. Описание дескриптора интерфейса см. в разделе 9.6.5 спецификации универсальной последовательной шины:
|
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. |