在何处查找有关自定义USB描述符类型的信息

在何处查找有关自定义USB描述符类型的信息,usb,Usb,从USB设备读取配置数据(使用0x200 wValue获取描述符操作)会得到描述符类型为0x22的描述符块。我不太清楚那是什么 描述符块(紧跟在接口描述符之后):14,22,00,01,13,81,1d,00,17,01,02,08,13,01,0c,00,0c,01,02,08 那么,有谁能告诉我它是什么,但更重要的是,我通常应该去哪里查找自定义类型描述符的信息?我会遇到其他描述符类型吗?我希望我能准确地记录下我是如何偶然发现这个解释的搜索路径,因为我花了很长时间,还有@kuldeepsing

从USB设备读取配置数据(使用0x200 wValue获取描述符操作)会得到描述符类型为0x22的描述符块。我不太清楚那是什么

描述符块(紧跟在接口描述符之后):
14,22,00,01,13,81,1d,00,17,01,02,08,13,01,0c,00,0c,01,02,08


那么,有谁能告诉我它是什么,但更重要的是,我通常应该去哪里查找自定义类型描述符的信息?我会遇到其他描述符类型吗?

我希望我能准确地记录下我是如何偶然发现这个解释的搜索路径,因为我花了很长时间,还有@kuldeepsingdhaka帮助我重新追踪我的脚步。这在USB规范中有点狡猾,因为它有点不明显

我使用的是参考,以后版本中的章节号可能不匹配

摘自第9.4.3节 wValue为0x200表示请求为标准(或第一个低字节0)、配置描述符(高字节0x2)

摘自第9.5节

如果特定于类别或供应商的描述符独立于 配置信息或使用非标准格式 GetDescriptor()指定特定于类或供应商的请求 描述符类型和索引可用于从中检索描述符 这个装置。类别或供应商规范将定义 检索这些描述符的适当方法

摘自,第3.11节:

bDescriptorType字段的最高有效位保留供将来使用。 ... bDescriptorType字段的下两个最高有效位用于指示标准、类别或类型 特定于供应商的描述符。这些位使用的编码与 USB设备请求设置包。因为bDescriptorType字段的上三位用作 如上所述,可以为任何类别定义的唯一描述符的最大数量 (标准、类别或设备特定)为32

下面是我如何解释上述内容,并将其应用到我所看到的(一些M$)设备中

描述符类型的定义结构为:

  • 位7:保留0
  • 位6..5:
    • 0:标准
    • 1:课堂
    • 2:供应商
    • 3:保留
  • 位4..0:描述符ID
因此,描述符类型0x22表示:类特定描述符ID 2

因此,一旦看到非标准描述符类型,请检查它是否基于供应商,然后需要查找供应商文档。如果是基于类的,则检查接口(*)描述符的类。如果接口描述符使用标准类(例如HID),请查阅相应的标准文档。如果接口描述符使用供应商类,那么同样需要供应商文档来理解描述符的内容


(*)描述符可能适用于设备或接口。我的理解是,如果描述符类型是基于类的,则基于其位置,它适用于设备或接口的类。

我希望我已经准确记录了我是如何偶然发现这个解释的搜索路径,因为我花了很长时间,@kuldeepsingdhaka有助于重新跟踪我的步骤。这在USB规范中有点狡猾,因为它有点不明显

我使用的是参考,以后版本中的章节号可能不匹配

摘自第9.4.3节 wValue为0x200表示请求为标准(或第一个低字节0)、配置描述符(高字节0x2)

摘自第9.5节

如果特定于类别或供应商的描述符独立于 配置信息或使用非标准格式 GetDescriptor()指定特定于类或供应商的请求 描述符类型和索引可用于从中检索描述符 这个装置。类别或供应商规范将定义 检索这些描述符的适当方法

摘自,第3.11节:

bDescriptorType字段的最高有效位保留供将来使用。 ... bDescriptorType字段的下两个最高有效位用于指示标准、类别或类型 特定于供应商的描述符。这些位使用的编码与 USB设备请求设置包。因为bDescriptorType字段的上三位用作 如上所述,可以为任何类别定义的唯一描述符的最大数量 (标准、类别或设备特定)为32

下面是我如何解释上述内容,并将其应用到我所看到的(一些M$)设备中

描述符类型的定义结构为:

  • 位7:保留0
  • 位6..5:
    • 0:标准
    • 1:课堂
    • 2:供应商
    • 3:保留
  • 位4..0:描述符ID
因此,描述符类型0x22表示:类特定描述符ID 2

因此,一旦看到非标准描述符类型,请检查它是否基于供应商,然后需要查找供应商文档。如果是基于类的,则检查接口(*)描述符的类。如果接口描述符使用标准类(例如HID),请查阅相应的标准文档。如果接口描述符使用供应商类,那么同样需要供应商文档来理解描述符的内容


(*)描述符可能适用于设备或接口。我的理解是,如果描述符类型是基于类的,则根据其位置,它适用于设备或接口的类。

尝试一些USB分析器,如USBview、Ellysis visual USB Analyzer,这将有助于消除您的疑问。

尝试一些USB分析器,如USBview,Ellysis visual USB Analyzer有助于澄清您的疑问

您能否引用信息来源(e