频 道 直 达 - 新闻 - 培训 - 软件 - 教程 - 前沿 - 组网 - 系统应用 - 安全 - 编程 - 存储 - 操作系统 - 数据库 - 服务器 - 专题 - 产品 - 案例库 - 读书 - 博客 - BBS
51CTO.COM_中国最大的网络技术网站
找资料:

17.3.2 构造USB请求包

作者: 张帆/史彩成等编著 出处:电子工业出版社  2008-07-07 10:07    砖    好    评论   进入论坛
阅读提示:《Windows驱动开发技术详解》第17章USB设备驱动,这一章首先介绍USB协议,使大家对USB协议有个整体认识,然后介绍USB设备在WDM中的开发框架,本节为大家介绍的是接口描述符。

17.3.2  构造USB请求包

USB驱动在与USB设备通信的时候,如在控制管道中获取设备描述符、配置描述符、端点描述符,或者在Bulk管道中获取大量数据,都是通过创建USB请求包(URB)来完成的。URB中填充需要对USB的请求,然后将URB作为IRP的一个参数传递给底层的USB总线驱动。在USB总线驱动中,能够解释不同URB,并将其转化为USB总线上的相应数据包。

DDK提供了构造URB的内核函数UsbBuildGetDescriptorRequest,其声明如下:

VOID 
UsbBuildGetDescriptorRequest(
IN OUT PURB  Urb,
IN USHORT  Length,
IN UCHAR  DescriptorType,
IN UCHAR  Index,
IN USHORT  LanguageId,
IN PVOID  TransferBuffer  OPTIONAL,
IN PMDL  TransferBufferMDL  OPTIONAL,
IN ULONG  TransferBufferLength,
IN PURB  Link  OPTIONAL
);

Urb:用来输出的URB结构的指针。

Length:用来描述该URB结构的大小。

DescriptorType:描述该URB的类型。它可以是USB_DEVICE_DESCRIPTOR_TYPE、USB_CONFIGURATION_DESCRIPTOR_TYPE和USB_STRING_DESCRIPTOR_ TYPE。

Index:用来描述设备描述符的索引。

LanguageId:用来描述语言ID。

TransferBuffer:如果用缓冲区读取设备,TransferBuffer是缓冲区内存的指针。

TransferBufferMDL:如果用直接读取内存时,TransferBufferMDL是直接读取内存时MDL的指针。

TransferBufferLength:对于该URB所操作内存的大小。

在功能驱动中,所有与USB的通信,都需要用这个函数创建URB,并通过IRP发送到底层USB总线驱动,以下是一个最基本的示例。

#001               UsbBuildGetDescriptorRequest(
#002                       urb,
#003                       (USHORT) sizeof(struct _URB_
CONTROL_DESCRIPTOR_REQUEST),
#004                       USB_DEVICE_DESCRIPTOR_TYPE,
#005                       0,
#006                       0,
#007                       deviceDescriptor,
#008                       NULL,
#009                       siz,
#010                       NULL);
【责任编辑:夏书 TEL:(010)68476606】

回书目   上一节   下一节
专题
2008年上半年IT技术图书阅读排行大盘点
汶川大地震 IT技术人在行动
解析35岁技术人的价值与出路
LAMP技术精解
调查:十大发现 解秘技术人
我也说两句

匿名发表

(如果看不清请点击图片进行更换)


中 国 最 大 的 网 络 技 术 网 站 ·
技 术 成 就 梦 想
订阅技术快讯
电子杂志下载
名称:SQL Server数据库管理精品黄皮书
简介:书中文章经过精挑细选,便于用户能根据自己的实际工作和学习,快速在本书寻找到相关资料。内容涵盖了SQL Server的安装与升级、语句查询、数据备份和恢复、自动化任务、数据同步、数据字典、安全和预防、性能和优化、集群等各方面应用信息,以及DBA管理人员在数据库管理工作中
名称:2007路由技术大全
简介:《2007路由技术大全》由51CTO.com网站特别策划制作,该书包括路由器技术、路由器产品、路由器配置、安全设置、路由器故障处理、路由器密码恢复,以及广大网友在实践使用中的心得经验和技巧文章,内容注重实用性,适用于初学者入门,也适合多年从业者提高,是一本实践和理论完
名称:网络安全精品应用黄皮书
简介:《2007精品网络安全黄皮书》包括了9个大类24个小类, 800余篇文章,内容包含了熊猫烧香病毒、DDOS攻击、ARP病等热点问题的介绍及解决方案。从病毒查杀、防范、系统、数据等各方面的安全设置到黑客技术的了解、防范,涉及到了安全应用的全部领域, 由浅至深内容全面。
云计算时代来临
云计算时代来临
超级计算机TOP500专题
超级计算机TOP500专题
文档格式标准开战 OOXML成国际标准
文档格式标准开战 OOXML成国..
· 文档格式标准开战 OOXM..
· CCNA备考指南与满分攻略
· 浏览器的战国时代
· 世纪枭雄比尔盖茨的王..
· 路由器设置与口令恢复
· 微软出价446亿美元收购..
· IT工程师该不该考CCIE..
· 2008年上半年IT新闻热..
· 反垃圾邮件技术应用
· Windows远程桌面应用
· 运营商封堵ADSL共享 中..
· Vista SP1对决XP SP3
· 珊瑚虫QQ作者被判侵权..
· 勇闯IT培训黑色围城
· 2008年上半年IT技术图..
· 华为路由器配置
ARP攻击防范与解决方案
ARP攻击防范与解决方案
SQL Server 2008/2005全解
SQL Server 2008/2005全解
SOA 面向服务架构
SOA 面向服务架构
· SOA 面向服务架构
· SQL Server 2008/2005..
· Apache技术专题
· 三层交换技术专题
· SQL Server入门到精通
· Windows远程桌面应用
· C#技术开发指南
· Apache技术专题
· Windows集群服务应用
· C#技术开发指南
· 文档格式标准开战 OOXM..
· 路由器设置与口令恢复
· Linux 集群技术专题
· PHP开发应用手册
· SOA 面向服务架构
· 企业数据恢复指南
ARP攻击防范与解决方案
ARP攻击防范与解决方案
SQL Server 2008/2005全解
SQL Server 2008/2005全解
SQL Server入门到精通
SQL Server入门到精通
· SQL Server入门到精通
· SQL Server 2008/2005..
· SOA 面向服务架构
· Apache技术专题
· C#技术开发指南
· 三层交换技术专题
· Apache技术专题
· C#技术开发指南
· Windows远程桌面应用
· 企业数据恢复指南
· Windows集群服务应用
· 路由器设置与口令恢复
· Linux 集群技术专题
· SOA 面向服务架构
· 了解统一威胁管理(UTM)..
· 反垃圾邮件技术应用