Microsoft OS Descriptors

Updated: April 11, 2014

USB devices store standard descriptors in firmware for the device, and its interfaces and endpoints. Independent hardware vendors (IHVs) can also store class and vendor-specific descriptors. However, the types of information that these descriptors can contain is limited. IHVs typically must use Windows Update or media such as a CD to provide their users with a variety of device-specific information such as pictures, icons, custom drivers and so on.

To help IHVs address this issue, Microsoft has defined Microsoft OS descriptors. These descriptors can be used by IHVs to store in firmware much of the information that is now typically provided to customers separately. Versions of Windows that are aware of Microsoft OS descriptors use control requests to retrieve the information, and use it to install and configure the device without requiring any user interaction. This white paper provides an introduction to Microsoft OS descriptors, including a discussion of how they are stored and retrieved.

Note: The table of compatible and sub-compatible IDs in Appendix 1 of "Extended Compat ID OS Feature Descriptor Specification" is current as of the time the specification was written, but might have since changed. The following table contains the most recent list of compatible and sub-compatible IDs. All IDs must be eight bytes, so any unused characters are filled with NULLs.

CompatibleID Sub-compatible ID Description
(0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00) (0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00) No compatible or sub-compatible ID
"RNDIS"
(0x52 0x4E 0x44 0x49 0x53 0x00 0x00 0x00)
(0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00) Remote Network Driver Interface Standard (RNDIS)
"PTP"
(0x50 0x54 0x50 0x00 0x00 0x00 0x00 0x00)
(0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00) Picture Transfer Protocol (PTP)
"MTP"
(0x4D 0x54 0x50 0x00 0x00 0x00 0x00 0x00)
(0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00) Media Transfer Protocol (MTP)
"XUSB20"
(0x58 0x55 0x53 0x42 0x32 0x30 0x00 0x00)
(0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00) XNACC (Krypton)
"BLUTUTH"
(0x42 0x4C 0x55 0x54 0x55 0x54 0x48 0x00)
"11"
(0x31 0x31 0x00 0x00 0x00 0x00 0x00 0x00)
Bluetooth radios compliant with v1.1 and compatible with the Microsoft driver stack
"12"
(0x31 0x32 0x00 0x00 0x00 0x00 0x00 0x00)
Bluetooth radios compliant with v1.2 and compatible with the Microsoft driver stack
"EDR"
(0x45 0x44 0x52 0x00 0x00 0x00 0x00 0x00)
Bluetooth radios compliant with v2.0 + EDR and compatible with the Microsoft driver stack
Bluetooth
"SCAN"
(0x53 0x43 0x41 0x4E 0x00 0x00 0x00 0x00)

Format as follows: 2 Letter vendor code + 1-5 ASCII characters* + 0x00

*ASCII restricted to uppercase letters, numbers, underscores.

Scan
"3DPRINT"
(0x33 0x44 0x50 0x52 0x49 0x4E 0x54 0x00)
Varies MS3DPRINT G-Code 3D Printer

This information applies to Windows XP and later versions of Windows.

最新文章

  1. 简单JavaScript模版引擎优化
  2. 使用/调用 函数的时候, 前面加不加 对象或 this?
  3. 一个简单的dos脚本, svn 获取代码 - Tomcat 备份 - Maven 编译 - 停止/启动Tomcat - Tomcat站点 发布
  4. 前端模块化:RequireJS
  5. linux 多个ssh key 登录远程主机
  6. Swift数据类型简介
  7. noip2002提高组题解
  8. 聊聊Iconfont
  9. 属性观察者willSet与didSet
  10. Android 开发 对话框Dialog dismiss和hide方法的区别
  11. 关于Jquery.validate.js中动态删除验证remove方法的Bug
  12. Poj 2092 Grandpa is Famous(基数排序)
  13. Java设计模式之职责型模式总结
  14. ThinkSNS+ alpha.2 版本发布,功能抢先看!【社交系统研发日记六】
  15. Java精选笔试题
  16. post插件
  17. [开源] C# 封装 银海医保的接口
  18. 文件读操作(IO编程)
  19. edgeR
  20. PHP 数值处理的几种常用的方法

热门文章

  1. Linux 网卡流量查看
  2. unbind()清除指定元素绑定效果
  3. HDU 2521 反素数 模拟题
  4. rstful登陆认证并检查session是否过期
  5. linux串口驱动分析【转】
  6. ASP.NET结合COM组件发送Email
  7. python tar.gz格式压缩、解压
  8. DDD领域模型企业级系统Linq的CRUD(四)
  9. 【LOJ】 #2547. 「JSOI2018」防御网络
  10. Codeforces Round #355 (Div. 2) D. Vanya and Treasure