社区
驱动开发/核心开发
帖子详情
一个概念问题
liagl
2002-12-26 10:27:25
WDM中FDO和PDO是都有什么作用啊,这两个概念我比较模糊.
...全文
35
回复
打赏
收藏
微信扫一扫
点击复制链接
分享
下载分享明细
分享
举报
写回复
回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
相关推荐
Windows驱动开发WDM (14)- 分层驱动(设备栈,I/O栈)
前面的文章介绍了
一个
简单的功能驱动和过滤驱动。它们都是用WDM模型写的驱动,在写WDM驱动的时候,我们经常会碰到PDO和FDO。PDO就是物理设备对象,FDO是功能设备对象。FDO是附在PDO上面的,当然FDO上面还可以有其他的FDO。这样就构成了
一个
栈,就是设备栈。所以说WDM驱动天生就是分层驱动程序,最起码它有PDO和FDO。其实WDM驱动就是从分层的NT驱动发展过来的。 设备栈(De
WDM驱动程序
先说下关于WDM驱动程序一些原理。Windows2000后,微软加入了新的驱动程序模型,就是WDM。在WDM中,完成
一个
设备的操作,至少有两个设备共同完成。其中,
一个
是物理设备对象PDO,另
一个
是功能设备对象FDO。两者的关系是"附加"和"被附加"的关系。当PC插入某个设备时,总线驱动程序创建PDO,而设备的驱动程序创建FDO,并附加到PDO上。当FDO附加到PDO上时,PDO设备对象的子域AttachedDevice会记录FDO的位置,而FDO可以通过定义设备扩展来记录FDO下层设备,如PDO
对USB驱动程序的的理解
1、每个设备对应
一个
PDO,每个PDO又对应多个FDO,在驱动程序中直接操作的不是硬件而是相应的PDO和FDO。在USER和KERNEL通信方面,系统将每
一个
用户请求打包成IRP结构,将其发送至驱动程序,并通过识别IRP中的PDO来区别是发送给哪个设备的。另外,在驱动程序加载方面,WDM不通过驱动程序名称识别,而是通过
一个
128位的全局唯一的标识符GUID来实现驱动程序的识别,即每
一个
固件都有
一个
usb驱动程序开发技术总结(二)
二.USB接口驱动程序的开发1.设备和驱动程序的层次结构WDM模型使用了如图所示的层次结构。图中右边是
一个
设备对象堆栈。设备对象是系统为帮助软件管理硬件而创建的数据结构。
一个
物理硬件可以有多个这样的数据结构。在WDM中引入了功能设备对象(FDO)和物理设备对象(PDO)来描述硬件。
一个
PDO对应
一个
真实硬件,
一个
硬件只允许有
一个
PDO,却可以有多个FDO。在驱动程序中直接操作的不是
WDM驱动的基本结构
1、物理设备对象和功能设备对象 WDM模型,完成
一个
设备操作,至少有两个对象共同完成。其中
一个
是物理设备对象(PDO), 另
一个
是功能设备对象(FDO),其关系是附加和被附加的关系。 PC插入某个设备时,PDO会由系统总线自动创建,PDO不能单独操作设备,需要FDO配合。 当
一个
FDO附加到PDO上的时候,PDO设备对象的子域(理解为
一个
函数即可)AttachedDevice会
发帖
驱动开发/核心开发
加入
微信扫一扫
点击复制链接
分享社区
下载分享明细
2.1w+
社区成员
2.1w+
社区内容
硬件/嵌入开发 驱动开发/核心开发
社区管理员
申请成为版主
帖子事件
创建了帖子
2002-12-26 10:27
社区公告
暂无公告