USB设备使用描述符报告其属性。描述符是具有定义格式的数据结构。每个描述符都以字节宽度字段开头,该字段包含描述符中的总字节数,后跟一个标识描述符类型的字节宽度字段。
使用描述符允许简单地存储各个配置的属性,因为每个配置可以重用具有相同特征的其他配置的描述符或描述符的部分。以这种方式,描述符类似于关系数据库中的各个数据记录。
适当时,描述符包含对字符串描述符的引用,这些字符串描述符提供以可读形式描述描述符的可显示信息。包含字符串描述符是可选的。但是,描述符中的引用字段是必需的。如果设备不支持字符串描述符,则必须将字符串引用字段重置为零,以指示没有可用的字符串描述符。
如果描述符返回的长度字段中的值小于此规范定义的值,则描述符无效,应由主机拒绝。如果描述符返回的长度字段中的值大于此规范定义的值,则主机将忽略额外的字节,但使用返回的长度而不是预期的长度来定位下一个描述符。
设备可以通过两种方式返回特定于类或特定于供应商的描述符:
- 如果类或供应商特定描述符使用与标准描述符相同的格式(例如,以长度字节开头并后跟类型字节),则必须在GetDescriptor返回的配置信息中将它们与标准描述符交错返回(配置)请求。在这种情况下,类或特定于供应商的描述符必须遵循它们修改或扩展的相关标准描述符。
- 如果类或供应商特定描述符独立于配置信息或使用非标准格式,则可以使用指定类或供应商特定