usb - USB 控制消息到 libusb-1 中的端点 0x80?
问题描述
USB 声卡 Creative X-Fi 在使用其专有的 windows 驱动程序时从 USB1.1 切换到 USB2.0,从而在其 USB2 配置中实现更快的采样率。Wireshark 捕获的 USB 数据包显示,在设备断开连接并重新连接到 USB2 之前,专有驱动程序发送了几个命令。我正在尝试将命令重播到 linux 中的设备,以便能够将相同的功能添加到现有的 linux usb-audio 驱动程序中。
我想使用 python,大概是 libusb-1 库周围的 libusb1 包装器。捕获的数据包显示驱动程序使用 wIndex 0 向端点 0x80 发送 USB 控制请求。请问有没有办法用 libusb-1 格式化和发送这样的数据包?我找到了这个答案https://stackoverflow.com/a/39343813/15717902但不知道它是否仍然有效。
捕获的数据包:
USB URB
[Source: host]
[Destination: 3.5.0]
USBPcap pseudoheader length: 28
IRP ID: 0xfffffa8009ebd3e0
IRP USBD_STATUS: USBD_STATUS_SUCCESS (0x00000000)
URB Function: URB_FUNCTION_VENDOR_OTHER (0x0020)
IRP information: 0x00, Direction: FDO -> PDO
URB bus id: 3
Device address: 5
Endpoint: 0x80, Direction: IN
URB transfer type: URB_CONTROL (0x02)
Packet Data Length: 8
[Response in: 20]
Control transfer stage: Setup (0)
[bInterfaceClass: Unknown (0xffff)]
Setup Data
bmRequestType: 0xc3
bRequest: 42
wValue: 0x0000
wIndex: 0 (0x0000)
wLength: 2
解决方案
推荐阅读
- java - 有什么方法我们不需要用 0 初始化 char VarName?
- c# - 使用 OAuth - 受限邮箱对 EWS 应用程序进行身份验证
- python - python - pyvisa - 试图从没有读取_termination的设备读取可变长度数据
- javascript - Javascript JSON DOM 选择器:如何告诉 JS 根据 html 选择器从 JSON 中过滤一些卡片?
- ios - 无法使用协议/委托将值从子 VC 传递到父 VC
- python - 剥离列表返回空白值
- scala - 如何在 Azure Web App 中部署 Play Framework API App
- javascript - 是否可以仅在单击按钮而不使用使用css或scss的javascript时触发动画
- php - 如何在没有 Api 的情况下通过 PHP 获取亚马逊产品数据
- java - Char 数组值不保存 JAVA 中的用户输入值