shenhui
驱动小牛
驱动小牛
  • 注册日期2006-05-11
  • 最后登录2023-02-10
  • 粉丝14
  • 关注11
  • 积分142分
  • 威望1314点
  • 贡献值1点
  • 好评度146点
  • 原创分0分
  • 专家分1分
  • 社区居民
阅读:1014回复:2

关于文件系统设备栈组成的问题

楼主#
更多 发布于:2007-03-13 14:51
  这两天看了sfilter代码,有个疑问向各位请教:

    在DriverEntry中,我们首先创建了一个CDO,这个设备对象代表过滤驱动程序的控制设备对象;

    然后为了绑定文件系统的CDO,我们又创建了一个设备对象,暂且称之为DeviceObject1,只有创建了这个设备对象后,IRP_MJ_FILE_SYSTEM_CONTROL请求就会先发送给DeviceObject1,这样就可以处理对各个卷进行绑定的请求;

    而后在mount卷的过程中,我们又创建了一个设备对象用于绑定到卷设备的设备栈上,暂且称为DeviceObject2;

    我的问题是:DeviceObject1和DeviceObject2是否处于同一个设备栈中?如果不是,那么究竟是怎样的一种结构?
作一名真实,诚实,优秀的科技工作者!
rayyang2000
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2012-09-13
  • 粉丝3
  • 关注0
  • 积分1036分
  • 威望925点
  • 贡献值3点
  • 好评度823点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2007-03-14 06:21
不是!文件系统的CDO其实和自己driver的CDO类似,都是为了进行总体控制,或者和其他app/driver进行通讯用的;而加载在volume上的DO才是真正过滤文件读写的。你用Device Tree一看就知道他们2个是在不同的stack中,互相只是sibling关系,并不是parent-child。
天天coding-debugging中----超稀饭memory dump file ======================================================== [b]Windows Device Driver Development and Consulting Service[/b] [color=blue][url]http://www.ybwork.com[/url][/color] ========================================================
shenhui
驱动小牛
驱动小牛
  • 注册日期2006-05-11
  • 最后登录2023-02-10
  • 粉丝14
  • 关注11
  • 积分142分
  • 威望1314点
  • 贡献值1点
  • 好评度146点
  • 原创分0分
  • 专家分1分
  • 社区居民
板凳#
发布于:2007-03-14 08:44
非常感谢!
作一名真实,诚实,优秀的科技工作者!
游客

返回顶部