Windows.Devices.Usb 命名空间
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
此命名空间定义 UWP 应用可用于与 WinUSB 设备通信的Windows 运行时类。 这些设备由收件箱 winusb.sys
驱动程序处理,并由特定的 Microsoft OS 描述符标识。
有效的 WinUSB 设备的兼容 ID 为 USB\MS_COMP_WINUSB

设备支持
此命名空间支持大多数 WinUSB 设备。 但是,它不提供对具有以下设备类别的 USB 设备的访问:
- 音频 (
0x01
) - HID (
0x03
) - 图像 (
0x06
) - 打印机 (
0x07
) - 大容量存储 (
0x08
) - 智能卡 (
0x0B
) - 音频/视频 (
0x10
) - 无线控制器 (
0xE0
)
USB 设备功能
访问 USB 设备的 UWP 应用在其清单的功能节点中必须包含特定的设备功能数据。 此数据标识设备及其用途 (或功能) 。 请注意,某些设备可能具有多个功能。
自 2018 年 10 月 Windows 10 版本 1809 (日更新)
<DeviceCapability Name="usb"/>
在 2018 年 10 月 Windows 10 版本 1809 (之前更新)
自 1809 年以来, 不再需要指定 VendorId/ProductId 和 function-type ,在较新的系统上将被忽略。 如果面向低于 1809 的系统,请参阅 旧版 USB 设备功能。
故障排除
- 验证应用程序清单中 (
usb
) 的 USB 功能。 - 验证用户是否已授予应用程序使用 USB 设备的权限。
- 验证设备类型是否不是指定为不可访问的设备类型。
- 除非在具有嵌入式模式和
lowLevelDevices
功能的 SKU 上运行,否则通常无法访问 () 的计算机内部设备DEVPKEY_Device_InLocalMachineContainer == TRUE
。 - 通常 无法访问 包含上限/较低筛选器驱动程序的堆栈的设备。 第三方有时会添加这些功能,以便为 自定义硬件启用其他功能。
- 设备限制部分由
winusb.sys
设备枚举期间确定,这可能会根据是否存在设备/类筛选器,在 WinUSB 设备接口上将设备接口GUID_DEVINTERFACE_WINUSB_WINRT
属性DEVPKEY_DeviceInterface_Restricted
设置为TRUE
。 - 可以使用 DeviceManager 通过查找
UpperFilters
和LowerFilters
属性来确定设备 UpperFilter/LowerFilter 驱动程序是否存在。 - 可以通过查找
Class upper filters
和Class lower filters
属性,使用 DeviceManager 确定是否存在 WinUSB 类 UpperFilter/LowerFilter 驱动程序。 - 可以通过调用
CM_Get_Device_Interface_Property
与传递到 FromIdAsync 相同的字符串来pszDeviceInterface
检查设备接口属性。
- 设备限制部分由
- 通过与驱动程序开发人员合作创建硬件支持应用来创建自定义设备时,可以绕过这些限制
类
UsbBulkInEndpointDescriptor |
USB 批量 IN 终结点的终结点描述符。 描述符指定终结点类型、方向、数字,以及单个传输中可从终结点读取的最大字节数。 |
UsbBulkInPipe |
表示基础 USB 驱动程序打开以与设备的 USB 大容量 IN 终结点通信的管道。 应用可以从管道获取输入流,并且正在从终结点读取访问数据。 |
UsbBulkOutEndpointDescriptor |
USB 批量 OUT 终结点的终结点描述符。 描述符指定终结点类型、方向、数字,以及可在单个传输中写入终结点的最大字节数。 |
UsbBulkOutPipe |
表示基础 USB 驱动程序打开以与设备的 USB 批量 OUT 终结点通信的管道。 对象提供对输出流的访问权限,应用可以将要发送到终结点的数据写入该流。 |
UsbConfiguration |
提供有关 USB 配置、其描述符以及该配置中定义的接口的信息。 有关 USB 配置的说明,请参阅通用串行总线 (USB) 规范中的 9.6.3 部分。 |
UsbConfigurationDescriptor |
从 USB 配置描述符的前 9 个字节派生信息。 该信息包括配置处于活动状态时设备的电源功能以及该配置中包含的接口数。 有关配置描述符的说明,请参阅第 9.6.3 节通用串行总线规范。 有关描述符字段的信息,请参阅:
|
UsbControlRequestType |
提供有关 USB 控制传输、控制请求类型、数据是从主机发送还是发送到主机的信息,以及设备中请求的接收方。 |
UsbDescriptor |
提供有关描述符类型、其大小 ((以字节为单位) )的信息,并获取描述符数据。 |
UsbDevice |
表示 USB 设备。 对象提供应用可用于枚举 WinUSB 设备和发送 IN 和 OUT 控制传输的方法和属性。 |
UsbDeviceClass |
通过指定类代码、子类代码和设备定义的协议代码,为应用提供一种方法,以 (AQS) 字符串获取高级查询语法。 此类中的属性在对 GetDeviceClassSelector 的调用中传递。 |
UsbDeviceClasses |
提供一种基于设备的 USB 设备类检索 UsbDeviceClass 对象的方法。 此类中定义的属性表示支持的 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 中断 IN 终结点通信的管道。 对象还使应用能够指定事件处理程序。 从终结点读取数据时调用的处理程序。 |
UsbInterruptOutEndpointDescriptor |
USB 中断 OUT 终结点的终结点描述符。 描述符指定终结点类型、方向、数字,以及可在单个传输中写入终结点的最大字节数。 应用还可以获取有关主机轮询终结点以发送数据的频率的信息。 |
UsbInterruptOutPipe |
表示基础 USB 驱动程序打开以与设备的 USB 中断 OUT 终结点通信的管道。 对象提供对输出流的访问权限,应用可以将要发送到终结点的数据写入该流。 |
UsbSetupPacket |
描述 USB 控制传输的设置数据包。 有关设置数据包的说明,请参阅通用串行总线 (USB) 规范中的表 9.2。 |
枚举
UsbControlRecipient |
定义指示 USB 控制传输的接收方的常量。 接收方在控制请求的设置数据包中定义。 请参阅通用串行总线 (USB) 规范 (www.usb.org) 的第 9.3 部分 的 表 9.2。 |
UsbControlTransferType |
定义指示 USB 控制传输类型的常量:标准、类或供应商。 |
UsbEndpointType |
定义指示 USB 终结点类型的常量:控制、批量、常时常量或中断。 |
UsbReadOptions |
为配置标志定义常量,可为主机为 USB 批量 IN 终结点打开的 USB 管道设置这些常量。 |
UsbTransferDirection |
定义指示 USB 传输方向的常量:IN 或 OUT 传输。 |
UsbWriteOptions |
定义可为主机为 USB OUT 终结点打开的 USB 管道设置的配置标志的常量。 |