|
发表于 2019-11-28 20:29:54
|
显示全部楼层
本帖最后由 kingreat 于 2019-11-28 20:35 编辑
To determine whether a USB device supports Microsoft OS 1.0 descriptors, Windows issues a request for a USB string descriptor at the arbitrarily defined index of 0xEE. Some USB devices do not handle that unexpected string query correctly, causing them to hang and/or fail enumeration. To avoid such errors, Windows maintains an errata list of devices known to break when querying for the Microsoft OS string descriptor, and caches the response during initial enumeration of a device so that the query is not repeated on subsequent enumerations. To avoid the issue with the MS OS 2.0 descriptors, a new BOS device capability descriptor has been defined to allow devices to return platform-specific properties. The BOS descriptor is a standard descriptor defined by the standard USB specification for USB versions 2.1 and greater, so its retrieval is a normal and expected enumeration step which should not lead to unintended device behavior.
谷歌中文翻译
若要确定USB设备是否支持Microsoft OS 1.0描述符,Windows会在任意定义的索引0xEE处发出对USB字符串描述符的请求。某些USB设备无法正确处理该意外的字符串查询,从而导致它们挂起和/或枚举失败。为避免此类错误,Windows维护了一个已知的设备勘误表,该设备在查询Microsoft OS字符串描述符时会中断,并在设备的初始枚举期间缓存响应,以便在后续枚举时不再重复查询。
为避免MS OS 2.0描述符出现问题,已定义了新的BOS设备功能描述符,以允许设备返回特定于平台的属性。 BOS描述符是由USB 2.1版及更高版本的标准USB规范定义的标准描述符,因此,它的检索是正常且预期的枚举步骤,不应导致意外的设备行为。 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
|