阅读:2746回复:14
关于MS的SFilter的一个问题:按照他的做法,怎么能够filter已经安装了的volumn的设备对象呢?用户被禁言,该主题自动屏蔽! |
|
最新喜欢:![]() |
沙发#
发布于:2003-03-21 22:57
用户被禁言,该主题自动屏蔽! |
|
板凳#
发布于:2003-03-22 00:59
去掉rawdisk,rawcdrom,sfilter照样attach.
|
|
地板#
发布于:2003-03-22 01:00
其实最主要的是:IoRegisterFsRegistrationChange与IRP_MJ_SYSTEM_CONTROL,这才是精华的要点。
|
|
地下室#
发布于:2003-03-22 23:39
用户被禁言,该主题自动屏蔽! |
|
5楼#
发布于:2003-03-23 02:14
用户被禁言,该主题自动屏蔽! |
|
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方式都有! |
|
|
7楼#
发布于:2003-03-25 21:53
用户被禁言,该主题自动屏蔽! |
|
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. 以上是我跟踪很得。 |
|
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. |
|
|
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?
|
|
|
11楼#
发布于:2003-03-26 18:02
用户被禁言,该主题自动屏蔽! |
|
12楼#
发布于:2003-03-27 04:16
用户被禁言,该主题自动屏蔽! |
|
13楼#
发布于:2003-03-27 12:03
我想就这个问题发表一点我的看法,虽然我对这个了解并不多。
在ifskit中example中有userguide,明确说明sfilter 是为了演示file system filter用途的。如果有用到者可取之。 从deviceObject中获得设备名,好像不一定,我记得好像看到过这样的代码,它在device_extension结构中定义了存放设备名称的UNICODE_STRING,说明一般情况下,设备名称是programmer自己赋予创建的deviceobject的。 以上发言,仅供讨论。呵呵! |
|
|
14楼#
发布于:2003-03-27 13:50
用户被禁言,该主题自动屏蔽! |
|