各位大虾好; 请教大家一个问题,先谢谢了!问题概述: 在编写windows 卷级(挂载到Volume上)过滤驱动时,遇到:安装驱动后,不重启系统,虽然驱动挂到了Volume上,也无法监控到I/O的问题;具体描述如下: 1. 在驱动的DriverEnt...
全文
回复(13) 2013-07-29 17:35 来自版块 - 文件系统(过滤)驱动程序开发
表情
azengkefu111Re:windows 卷级过滤驱动 不重启监控不到IO(2013-08-05 17:55)
lzw06061139问题已经解决了,办法是:hook volsnap的IRP_MJ_WRITE例程。 在此,非常感谢IT Sailor和wanghui219 的帮助和提点,谢谢!(2013-08-01 14:33)
ITSailorlzw06061139:说得对,既然文件系统直接将irp下发给了volsnap,那hook volsnap的IRP_MJ_WRITE就应该可以过滤写操作了,是一个可行的实践方法。 今天下午,尝试hook了volsnap的IRP_MJ_WRITE,好像是可行的,只是还有点问题(...(2013-07-31 22:47)
lzw06061139ITSailor:VCB是文件系统驱动内部的指针,当然看不到啦。 第二,你想想文件系统是怎么发给卷设备,Ntfs->IoCallDriver(VolumeDevice)->VolumeDevice->DriverObject->Majorfuncion(...(2013-07-31 22:11)
lzw06061139wanghui219:hook 的确可以实现,在网上试下找机器狗代码 (2013-07-30 21:50) [图片] google了下机器狗的代码,在功能实现上与我的要求不一样,不过hook的思想还是可以借鉴,是一个考虑得方向。(2013-07-31 22:06)
ITSailorlzw06061139:分析有道理,你说的第一个方法,也有尝试,用windbg调试的时候,发现文件系统ntfs、fastfat和底层的卷设备指向同一个Vpb,vcb倒是还没有发现。明天看看。 第二种方案, hook read和write不是太明白, 读写不都是IRP_MJ—RE...(2013-07-30 21:58)
wanghui219用户被禁言,该主题自动屏蔽!(2013-07-30 21:50)
lzw06061139ITSailor:你可以重新MOUNT。但这就要求文件系统能卸载,对于系统盘,显然不可行。卷设备指针式存放在文件系统的VCB里的,如果你想改,你就要改这个VCB里的东西,这个东西没公开,也没看出文件系统想更新它,所以我没发现有啥接口可以修改这个值,所以想改,可能不太不容易啊。 ...(2013-07-30 21:20)
ITSailorlzw06061139:嗯,挺有道理,之前也怀疑过: 文件系统是在mount的时候建立与下层设备栈的联系的,并且在以后的整个生命周期内都不会再更新! 看来要实现卷过滤驱动不重启情况下I/O过滤,除非能有办法通知文件系统,下层卷设备栈已经更新,不知是否有未公开接口之类的! (20...(2013-07-30 16:43)
lzw06061139ITSailor:我没开发过卷过滤驱动。如果我没猜错,磁盘驱动上层的设备,不太规范了。第一种情况不过你的驱动正常。当打开一个文件的时候,IO管理器从路径里直接打开了卷设备,从卷设备的VPB里拿到文件驱动的设备,并把打开操作发给了文件系统驱动。文件系统驱动在加载的时候,就拿到并保存...(2013-07-30 15:56)

返回顶部