Microsoft 定义的 USB 描述符

Microsoft 定义的 USB 描述符

Microsoft 提供一组专有设备类和 USB 描述符,称为 Microsoft 操作系统描述符 (MOD)。本主题将概述 MOD。

由于包含多种硬件功能的设备快速涌现,很多制造商发现他们的设备并不完全符合任何当前的通用串行总线 (USB) 设备类。这导致这些制造商失去了 USB 技术一个最具吸引力的特性:驱动程序软件的标准化(根据设备的类)。Microsoft Windows 为大多数属于标准 USB 设备类的设备提供本机类驱动程序,这些驱动程序让最终用户可以轻松地将此类设备附加到计算机,无需安装特殊的软件。

为满足其设备不符合当前 USB 设备类集合的制造商的需求,Microsoft Corporation 开发了一组专有设备类和 USB 描述符,称之为 Microsoft 操作系统描述符 (MOD)。应用程序和系统软件都可以通过查询来确定设备是否支持 MOD,从而识别哪些设备属于 Microsoft 定义的设备类。

Microsoft 操作系统描述符除了支持专有设备类之外,还有重要的用途。具体来说,它们提供的机制可发挥设备固件的最大优势。有了 Microsoft 操作系统描述符的帮助,你可以使用固件来交付帮助文件、特殊图标、统一资源定位符 (URL)、注册表设置,以及简化安装和提高客户满意度所需的其他数据。在某些情况下,你可以不使用诸如软盘和 CD 之类的存储介质,这简化了升级内容的交付和支持。

操作系统支持

Windows XP Service Pack 1、Windows Server 2003、Windows Vista、Windows Server 2008 和 Windows 7 支持 Microsoft 操作系统描述符。

为什么 Windows 向索引 0xEE 发出字符串描述符请求?

支持 Microsoft 操作系统描述符的设备必须在固件中的固定字符串索引 0xEE 处存储一个特殊的 USB 字符串描述符。这个字符串描述符称为 Microsoft 操作系统字符串描述符。

当一个新设备首次连接到计算机时,支持 Microsoft 操作系统描述符的操作系统将请求位于索引 0xEE 处的字符串描述符。Microsoft 操作系统字符串描述符包含一个嵌入式签名字段,由操作系统用来区分它与索引 0xEE 处可能出现的其他字符串。如果在索引 0xEE 处存在一个包含适当签名字段的字符串描述符,就向操作系统指示该设备支持 Microsoft 操作系统描述符。Microsoft 操作系统字符串描述符也向操作系统提供版本信息。

在设备枚举期间(设备驱动程序加载之前),操作系统在索引 0xEE 处查询字符串描述符,这可能会导致一些设备不能正常工作。支持 Microsoft 操作系统描述符的 Windows 操作系统版本不支持这样的设备。

如果一个设备在索引 0xEE 处不包含有效的字符串描述符,那么它必须用一个隔栏(stall)数据包(即一个包含 STALL 类型数据包标识符的数据包)进行响应,通用串行总线规范的“请求错误”一节中描述了该数据包。如果设备不用隔栏数据包进行响应,系统将向设备发出一个单端零重置数据包,帮助它从已停止状态恢复(仅 Windows XP)。

操作系统从设备请求一个 Microsoft 操作系统描述符之后,会创建以下注册表键:

HLKM\SYSTEM\CurrentControlSet\Control\UsbFlags\vvvvpppprrrrr

操作系统在这个指示该设备是否支持 Microsoft 操作系统描述符的注册表键下面,创建一个名为 osvc 的注册表项。如果设备在操作系统第一次向它查询 Microsoft 操作系统字符串描述符时未提供有效的响应,操作系统将不再请求该描述符。

关于该键下的注册表项,请参阅 USB 设备注册表项

有关其他信息,请参阅 Microsoft 操作系统描述符

注册表项

 

 

Send comments about this topic to Microsoft

Build date: 6/25/2013

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值