我正在使用 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/