读取配置数据(与在0x200 wValue GET_DESCRIPTOR操作)的信息我与描述符类型为0x22描述符块。我不知道它是什么。凡从USB设备找到定制USB描述符类型
描述块(紧跟接口描述符):14,22,00,01,13,81,1d,00,17,01,02,08,13,01,0c,00,0c,01,02,08
因此,任何人可以请让我知道它是什么,但更重要的是,我应该在哪里通常去寻找信息的自定义类型的描述,我将真的来临跨越其他一些描述符类型?
读取配置数据(与在0x200 wValue GET_DESCRIPTOR操作)的信息我与描述符类型为0x22描述符块。我不知道它是什么。凡从USB设备找到定制USB描述符类型
描述块(紧跟接口描述符):14,22,00,01,13,81,1d,00,17,01,02,08,13,01,0c,00,0c,01,02,08
因此,任何人可以请让我知道它是什么,但更重要的是,我应该在哪里通常去寻找信息的自定义类型的描述,我将真的来临跨越其他一些描述符类型?
我想我已经记录究竟如何,我偶然发现了这样的解释,因为我花了相当长一段时间,并@KuldeepSinghDhaka帮助重新追查我的脚步的搜索路径。 USB规范有点偷偷摸摸,因为它有点不明显。
我使用USB 2.0 Spec供参考,在以后的版本中的部分数字可能不一致。
从USB 2.0 Spec,仲9.4.3的为0x200 wValue装置请求是针对标准(或第一,0低字节),配置描述符(高字节0×2)
从USB 2.0 Spec,仲9.5
如果类别或供应商特定描述符独立于配置信息或使用非标准格式,则可以使用指定类别或供应商特定描述符类型和索引的GetDescriptor()请求来检索描述符来自 设备。类或供应商规范将定义检索这些描述符的适当方式。
从USB Common Class Specification says,秒3.11:
的bDescriptorType领域的最显著位保留供未来使用。 ... 接下来的两个bDescriptorType领域的最显著位被用来表示标准,阶级或 供应商特定的描述符。这些位使用与USB设备请求设置数据包的bmRequestType.Type字段相同的编码。因为bDescriptorType字段的高3位被用作如上所述 ,其可以为任何类别 (标准,类或设备特定的)来定义的唯一描述符的最大数目是32
下面是如何我解释了上述情况,并将其应用于我所看到的(某些M $)设备。
描述符类型具有定义的结构:
所以,描述符类型0x22表示:类特定描述符ID 2.
因此,一旦您看到非标准描述符类型,请检查它是否基于供应商,然后您将需要查找供应商文档。如果它是基于类的,那么检查接口(*)描述符的类。如果接口描述符使用标准类(例如HID),则查找相应的标准文档。如果接口描述符使用供应商类,那么需要供应商文档来了解描述符的内容。 (*)描述符可适用于设备或接口。我的理解是,如果描述符类型是基于类的,则它适用于基于其位置的设备或接口的类。
您可以引用信息的来源(特别是描述符类型的位布局)。 –
我很乐意阅读原始规格。请在答案中提及文件和相关部分的链接。 –
如果文档和规格说明是真的,我会很惊讶。我从来没有读过任何描述描述符类型的位布局的文档。即时通讯等待... :)(即时通讯怀疑也..) –
尝试一些USB分析仪像USBVIEW,Ellysis视觉USB分析仪,它会为你清晰的疑虑
的问题是真实的,信息是不是很知道有用。 –
之前曾经低调提出过这个问题的人,要么是不了解USB,或者会造成滋扰。 –