17.2.3 设备描述符
在控制管道发起USB设备请求,其中很常见的请求是USB_REQUEST_GET_ DESCRIPTOR,即请求USB设备回答设备或者管道描述符。在请求描述符时,bmRequestType可以指定是针对设备还是针对管道的。
当请求设备描述符后,设备会回答主机该设备的设备描述符,设备描述符是一种固定的数据结构,它定义在DDK中的usb100.h文件中。
typedef struct _USB_DEVICE_DESCRIPTOR { |
bLength:设备描述符的bLength域应等于18。
bDescriptorType:bDescriptorType域应等于1,以指出该结构是一个设备描述符。
bcdUSB:bcdUSB域包含该描述符遵循的USB规范的版本号(以BCD编码)。现在,设备可以使用值0x0100或0x0110来指出它所遵循的是1.0版本还是1.1版本的USB规范。
bDeviceClass:指出设备类型。
bDeviceSubClass:指出设备子类型。
bDeviceProtocol:指出设备类型所使用的协议。
bMaxPacketSize0:设备描述符的bMaxPacketSize0域,给出了默认控制端点(端点0)上的数据包容量的最大值。
idVendor:厂商代码。
idProduct:厂商专用的产品标识。
bcdDevice:bcdDevice指出设备的发行版本号(0x0100对应版本1.0)。
iManufacturer、iProduct、iSerialNumber:iManufacturer、iProduct和iSerialNumber域指向一个串描述符,该串描述符用人类可读的语言描述设备生产厂商、产品和序列号。这些串是可选的,0值代表没有描述串。如果在设备上放入了序列号串,Microsoft建议应使每个物理设备的序列号唯一。
bNumConfigurations:bNumConfigurations指出该设备能实现多少种配置。Microsoft的驱动程序仅工作于设备的第一种配置(1号配置)。
如图17-18所示为笔者用BusHound截获的USB移动硬盘的请求设备描述符,前面已经介绍过,在控制管道中,传输分为三个阶段。第一阶段是令牌阶段,这里Host向设备发送“80 06 00 01 00 00 12 00”8个字节,可以参见表17-1中的解释。第二阶段是数据传输阶段,方向是由设备传给主机,这个例子中设备给主机传递了18(0x12)个字节,这18个字节对应着USB_DEVICE_DESCRIPTOR数据结构。第三阶段是握手阶段,在BusHound软件中没有体现出来。
| (点击查看大图)图17-18 用BusHound抓取设备描述符 |
| 回书目 上一节 下一节 |
|
· 华为认证网络工程师(H.. · 最新Linux认证复习题模.. · 第六章 你能帮我吗?.. · Linux笔试面试题选摘测.. · 08年5月软考网管上午真.. · 性能测试从零开始 目录 |
· 08年5月软考网工上午真.. · 上周拒绝服务攻击(DDo.. · 08年5月各大网上书店及.. · 2008年5月24日软考试题.. · 软件设计师专家临考模.. · 上周网络管理员专家自.. |
|
||||
| · 文档格式标准开战 OOXM.. · CCNA备考指南与满分攻略 · 浏览器的战国时代 · 世纪枭雄比尔盖茨的王.. · 路由器设置与口令恢复 · 微软出价446亿美元收购.. · IT工程师该不该考CCIE.. · 2008年上半年IT新闻热.. |
· 反垃圾邮件技术应用 · Windows远程桌面应用 · 运营商封堵ADSL共享 中.. · Vista SP1对决XP SP3 · 珊瑚虫QQ作者被判侵权.. · 勇闯IT培训黑色围城 · 2008年上半年IT技术图.. · 华为路由器配置 |
|||
|
||||
| · SOA 面向服务架构 · SQL Server 2008/2005.. · Apache技术专题 · 三层交换技术专题 · SQL Server入门到精通 · Windows远程桌面应用 · C#技术开发指南 · Apache技术专题 |
· Windows集群服务应用 · C#技术开发指南 · 文档格式标准开战 OOXM.. · 路由器设置与口令恢复 · Linux 集群技术专题 · PHP开发应用手册 · SOA 面向服务架构 · 企业数据恢复指南 |
|||
|
||||
| · SQL Server入门到精通 · SQL Server 2008/2005.. · SOA 面向服务架构 · Apache技术专题 · C#技术开发指南 · 三层交换技术专题 · Apache技术专题 · C#技术开发指南 |
· Windows远程桌面应用 · 企业数据恢复指南 · Windows集群服务应用 · 路由器设置与口令恢复 · Linux 集群技术专题 · SOA 面向服务架构 · 了解统一威胁管理(UTM).. · 反垃圾邮件技术应用 |
|||