WDM驱动程序设计之USB总线支持类:KUsbLowerDevice类、KUsbInterface类和KUsbPipe类(综述)

USB(Universal Serial Bus)总线支持类
包括三个类:KUsbLowerDevice类、KUsbInterface类和KUsbPipe类,这三个类都只能在WDM模式下使用。
本文只做概要性介绍,以后三篇文章将分别介绍这三个类的封装结构。
【Overview】
DriverWorks支持USB客户端驱动开发,比如需要通过USB向某个设备发送请求的驱动程序。
从客户端驱动的开发者角度来看,任何USB设备概念上都是由三个类组件组成的:Logical Device,Interfaces和Endpoints。
以下分别讲述:
(1)Logical Device
这是一个逻辑组件,USB总线驱动通过这个组件对设备进行配置和控制。它相当于USB规格说明书中描述的默认控制管道(the default control pipe)或"endpoint 0"。所有的USB设备都支持一个函数集合,这些函数通过向USB协议栈的逻辑设备层发送命令的方式完成自己的功能。这些功能包括控制设备描述符和设置配置空间。
类KUsbLowerDevice抽象了这个函数集合。通过实例化这个类,一个设备驱动创建了一个系统USB总线驱动的上层接口。
(2)Interfaces
所有USB设备都有一个或多个接口。一个接口就是一组提供特殊功能的设备端点(这个在概念上和COM接口相似,因为接口就象征着一个特殊的,定义良好的操作集合)。一个设备的每个接口呈现了设备功能的不同子集。假如设备驱动不使用相同的端点,那么他们就可以使能一个设备的多个接口。
USB规格说明书中提出了如下的例子作为对接口功能的说明:一个ISDN设备(综合业务数字网络设备)可以配置两个接口,每个接口提供64KB/s的数据通道,在主机上他们有分离的数据源或者接收方。另一个配置可以使ISDN设备呈现为单个接口,事实上是把两个通道结合成了一个128KB/s双向通道。
类KUsbInterface抽象了这个函数集合。一个驱动为每个接口创建了一个此类的实例,用它进行相互作用(interact)。
(3)Endpoints
端点是物理设备上个别的数据提供者和使用者。从物理上将,这可以将IO寄存器映射到设备上。端点和驱动间的联系被成为pipe。USB规格说明书定义了四种类型的管道:Control,Interrupt,Bulk和Isochronous。设备驱动程序管理的每个数据传输都利用了一个特殊的管道。
类KUsbPipe抽象了这个函数集合。一个驱动为每个管道(pipe)创建这个类实例,需要通过它进行数据传输。然而,驱动不会为默认控制管道(endpoint 0)创建实例。KUsbLowerDevice抽象了这个管道。


                                            ----------------
                                            § 译自"DriverWorks帮助文件"  §
                                            §   李文凯 2008年04月28日    §
                                            ----------------  

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值