xzjfile
禁止发言
禁止发言
  • 注册日期2001-12-14
  • 最后登录2018-07-12
  • 粉丝0
  • 关注0
  • 积分6970分
  • 威望50721点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
  • 社区居民
阅读:2746回复:14

关于MS的SFilter的一个问题:按照他的做法,怎么能够filter已经安装了的volumn的设备对象呢?

楼主#
更多 发布于:2003-03-21 22:46
用户被禁言,该主题自动屏蔽!

最新喜欢:

znsoftznsoft
xzjfile
禁止发言
禁止发言
  • 注册日期2001-12-14
  • 最后登录2018-07-12
  • 粉丝0
  • 关注0
  • 积分6970分
  • 威望50721点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
  • 社区居民
沙发#
发布于:2003-03-21 22:57
用户被禁言,该主题自动屏蔽!
vcmfc
驱动中牛
驱动中牛
  • 注册日期2001-03-23
  • 最后登录2008-01-28
  • 粉丝0
  • 关注0
  • 积分528分
  • 威望53点
  • 贡献值0点
  • 好评度52点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-03-22 00:59
去掉rawdisk,rawcdrom,sfilter照样attach.


vcmfc
驱动中牛
驱动中牛
  • 注册日期2001-03-23
  • 最后登录2008-01-28
  • 粉丝0
  • 关注0
  • 积分528分
  • 威望53点
  • 贡献值0点
  • 好评度52点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-03-22 01:00
其实最主要的是:IoRegisterFsRegistrationChange与IRP_MJ_SYSTEM_CONTROL,这才是精华的要点。
xzjfile
禁止发言
禁止发言
  • 注册日期2001-12-14
  • 最后登录2018-07-12
  • 粉丝0
  • 关注0
  • 积分6970分
  • 威望50721点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
  • 社区居民
地下室#
发布于:2003-03-22 23:39
用户被禁言,该主题自动屏蔽!
xzjfile
禁止发言
禁止发言
  • 注册日期2001-12-14
  • 最后登录2018-07-12
  • 粉丝0
  • 关注0
  • 积分6970分
  • 威望50721点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
  • 社区居民
5楼#
发布于:2003-03-23 02:14
用户被禁言,该主题自动屏蔽!
omo
omo
驱动牛犊
驱动牛犊
  • 注册日期2002-08-07
  • 最后登录2004-11-16
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2003-03-25 13:49
我想你是没有看过IFS Kit的design guide。上面很明确的说了两种attach方法。一种是attach volume,一种是attach filesystem。
attach filesystem时采用IRP_MJ_FILE_SYSTEM_CONTROL,IRP_MN_MOUNT_VOLUME 通知和再driverEntry中注册callback函数。另一种attach volume时,用IO control通知。
再看看filespy,两种attach方式都有!
钱就是驱动,驱动就是钱。
xzjfile
禁止发言
禁止发言
  • 注册日期2001-12-14
  • 最后登录2018-07-12
  • 粉丝0
  • 关注0
  • 积分6970分
  • 威望50721点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
  • 社区居民
7楼#
发布于:2003-03-25 21:53
用户被禁言,该主题自动屏蔽!
vcmfc
驱动中牛
驱动中牛
  • 注册日期2001-03-23
  • 最后登录2008-01-28
  • 粉丝0
  • 关注0
  • 积分528分
  • 威望53点
  • 贡献值0点
  • 好评度52点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2003-03-25 22:47

去看一看fs_rec,它才是真正的loader各文件系统。


光看不能说明的,跟一跟Sfilter的程序,你会发现有些是不一样的。

  真正加载文件系统是fs_rec,而不是os loader,fs_rec在DriverEntry注册为rec file system,后os loader会发IRP给它,由它来负责loader各file system,file system负责通知filter.


以上是我跟踪很得。
omo
omo
驱动牛犊
驱动牛犊
  • 注册日期2002-08-07
  • 最后登录2004-11-16
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2003-03-26 09:23
RAW
A system-supplied FSD that is the \"last resort\" for all I/O requests requiring file system support. When the I/O Manager calls active file systems to mount a volume, RAW is always called last because it supports all disk and tape media.
However, RAW supplies very primitive file handling capabilities. That is, it does not impose any on-disk file structure or metadata structures for the information on the media; it simply allows read/write access to the logical blocks on the physical disk. For example, it treats the whole disk as a single file and supplies physical-disk-level VBN access to the disk.

RAW is not an acronym.
钱就是驱动,驱动就是钱。
omo
omo
驱动牛犊
驱动牛犊
  • 注册日期2002-08-07
  • 最后登录2004-11-16
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2003-03-26 09:41
我有点不通,如果要在系统启动时加载filer,如果是file system inform filter, 那么为什么filterdriver的加载顺序microsoft要推荐为SERVICE_BOOT_START (0x00000000) ? 我觉得按理论上推测不应该是file system inform filter。而是filesystem有mount动作的时候去attach。但这又和另外一点矛盾。如果我指定filter要attach一个volume,此时volume还没有加载起来,怎么attach?
钱就是驱动,驱动就是钱。
xzjfile
禁止发言
禁止发言
  • 注册日期2001-12-14
  • 最后登录2018-07-12
  • 粉丝0
  • 关注0
  • 积分6970分
  • 威望50721点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
  • 社区居民
11楼#
发布于:2003-03-26 18:02
用户被禁言,该主题自动屏蔽!
xzjfile
禁止发言
禁止发言
  • 注册日期2001-12-14
  • 最后登录2018-07-12
  • 粉丝0
  • 关注0
  • 积分6970分
  • 威望50721点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
  • 社区居民
12楼#
发布于:2003-03-27 04:16
用户被禁言,该主题自动屏蔽!
omo
omo
驱动牛犊
驱动牛犊
  • 注册日期2002-08-07
  • 最后登录2004-11-16
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2003-03-27 12:03
我想就这个问题发表一点我的看法,虽然我对这个了解并不多。
在ifskit中example中有userguide,明确说明sfilter 是为了演示file system filter用途的。如果有用到者可取之。
从deviceObject中获得设备名,好像不一定,我记得好像看到过这样的代码,它在device_extension结构中定义了存放设备名称的UNICODE_STRING,说明一般情况下,设备名称是programmer自己赋予创建的deviceobject的。
以上发言,仅供讨论。呵呵!
钱就是驱动,驱动就是钱。
xzjfile
禁止发言
禁止发言
  • 注册日期2001-12-14
  • 最后登录2018-07-12
  • 粉丝0
  • 关注0
  • 积分6970分
  • 威望50721点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
  • 社区居民
14楼#
发布于:2003-03-27 13:50
用户被禁言,该主题自动屏蔽!
游客

返回顶部