c - 如何使用 libusb 获取设备类特定描述符

标签 c usb libusb

我正在使用 libusb,我需要获取我正在使用的硬件的设备类特定描述符。

我没有找到任何可以帮助我的功能,有人知道如何做到这一点吗?

谢谢。

最佳答案

我在检查获取类特定描述符的方法时遇到了同样的情况,并发现这个问题没有得到解答。

libusb 没有任何 API 或数据结构来检索类特定描述符。这可能是因为 libusb 的设计目的只是为了满足基本的 USB 规范。要使用 libusb 获取类特定描述符详细信息,每个描述符中添加了一些额外字段。

字段:从 libusb.h 复制

/** Extra descriptors. If libusb encounters unknown endpoint descriptors,
 * it will store them here, should you wish to parse them. */
const unsigned char *extra;

/** Length of the extra descriptors, in bytes. */
int extra_length;

libusb_endpoint_descriptor、libusb_interface_descriptor、libusb_config_descriptor 中添加了“extra”和“extra_length”。您必须根据您的类代码(在配置级别或接口(interface)级别描述符)手动解码此内容。

您可以引用lsusb.c在 usbutils 包中,以便更好地理解解码。

关于c - 如何使用 libusb 获取设备类特定描述符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26404805/

相关文章:

c - 有什么方法可以更改链接以避免 HPUX 上的 LD_PRELOAD?

c++ - 无限循环直到应用程序收到信号

c++ - libusb_open 在 Windows 10 上返回 LIBUSB_ERROR_NOT_SUPPORTED

usb - 如何在非零端点(libusb)上发送 USB 控制事务?

c - Socket : Connect will spend 2 minutes looking for IP before it timesOut. 如何减少该时间?

c - 如何从这一行获取数组?

更改同步传输的 USBHID 示例

linux - 检查USB设备是否空闲,LINUX

c - 当 C 头文件位于闪存驱动器中时运行函数类型的程序?

android - USB Control Transfer 使用 libusb 获取 AudioStreaming Descriptor