aasa2
驱动中牛
驱动中牛
  • 注册日期2004-04-01
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分525分
  • 威望339点
  • 贡献值0点
  • 好评度106点
  • 原创分0分
  • 专家分0分
阅读:2853回复:13

我屏蔽了IRP_MJ_WRITE,为什么会出现这种警告窗口?如图

楼主#
更多 发布于:2004-11-12 10:07
请为如何解决?
技术交流:aasa2@21cn.com QQ群:10863699
aasa2
驱动中牛
驱动中牛
  • 注册日期2004-04-01
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分525分
  • 威望339点
  • 贡献值0点
  • 好评度106点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-11-12 10:09
图片2
技术交流:aasa2@21cn.com QQ群:10863699
fslife
驱动大牛
驱动大牛
  • 注册日期2004-06-07
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望49点
  • 贡献值0点
  • 好评度20点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-11-12 10:28
为什么要屏蔽IRP_MJ_WRITE,是不是不让写文件?
在交流中学习。。。
aasa2
驱动中牛
驱动中牛
  • 注册日期2004-04-01
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分525分
  • 威望339点
  • 贡献值0点
  • 好评度106点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-11-12 10:31
是的,就是让磁盘只能读不能写。
技术交流:aasa2@21cn.com QQ群:10863699
fslife
驱动大牛
驱动大牛
  • 注册日期2004-06-07
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望49点
  • 贡献值0点
  • 好评度20点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-11-12 10:57
是的,就是让磁盘只能读不能写。

那给你一个建议,通过处理IRP_MJ_CREATE可以实现。
disposition = (currentIrpStack->Parameters.Create.Options >> 24) & 0xFF;
如果disposition == FILE_OPEN,则是读取文件,否则就忽略。这样就可以禁止写文件、修改文件属性等。

如果还要禁止删除,就处理一下IRP_MJ_SET_INFORMATION。
在交流中学习。。。
fslife
驱动大牛
驱动大牛
  • 注册日期2004-06-07
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望49点
  • 贡献值0点
  • 好评度20点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2004-11-12 11:01
我为了实现这个功能,苦苦呕心了一个多月,呵呵。
参考filemon慢慢试,希望你可以少走一些弯路。
在交流中学习。。。
aasa2
驱动中牛
驱动中牛
  • 注册日期2004-04-01
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分525分
  • 威望339点
  • 贡献值0点
  • 好评度106点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2004-11-12 11:44
谢谢fslife。
我研究filemon很久,可惜还不是很透彻。

[编辑 -  11/12/04 by  aasa2]
技术交流:aasa2@21cn.com QQ群:10863699
newkey
驱动小牛
驱动小牛
  • 注册日期2002-10-03
  • 最后登录2013-10-13
  • 粉丝1
  • 关注0
  • 积分45分
  • 威望392点
  • 贡献值1点
  • 好评度90点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2004-11-12 12:14
disposition == FILE_OPEN

可能处理不全

比如 OPEN_IF
www.xDrv.com
ildee
驱动牛犊
驱动牛犊
  • 注册日期2003-01-16
  • 最后登录2005-01-24
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2004-11-18 17:43
OPEN_IF有可能是真的create
tooflat
论坛版主
论坛版主
  • 注册日期2002-07-08
  • 最后登录2014-03-11
  • 粉丝2
  • 关注0
  • 积分1007分
  • 威望551点
  • 贡献值3点
  • 好评度476点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2004-11-19 10:45
另外处理IRP_MJ_WRITE的时候只处理非PAGING_IO,并且返回STATUS_MEDIA_WRITE_PROTECTED不会出现延缓写入失败。

yaolixing
驱动小牛
驱动小牛
  • 注册日期2006-06-27
  • 最后登录2010-07-15
  • 粉丝1
  • 关注0
  • 积分991分
  • 威望135点
  • 贡献值0点
  • 好评度124点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2007-03-08 16:08
在write()中直接返回STATUS_SUCCESS
devia
论坛版主
论坛版主
  • 注册日期2005-05-14
  • 最后登录2016-04-05
  • 粉丝3
  • 关注0
  • 积分1029分
  • 威望712点
  • 贡献值1点
  • 好评度555点
  • 原创分8分
  • 专家分4分
11楼#
发布于:2007-03-08 17:43
其实上层应用写文件只是把数据缓存,然后统一由后台的System进程进行迟延写(Flush Cache)。
人总在矛盾中徘徊。。。
victorliuhao
驱动牛犊
驱动牛犊
  • 注册日期2006-09-25
  • 最后登录2009-05-15
  • 粉丝0
  • 关注0
  • 积分191分
  • 威望76点
  • 贡献值0点
  • 好评度41点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2007-04-16 14:19
能给点具体的代码提示吗
test02
驱动牛犊
驱动牛犊
  • 注册日期2006-03-24
  • 最后登录2007-04-17
  • 粉丝0
  • 关注0
  • 积分30分
  • 威望4点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2007-04-17 23:28
IRP_MJ_WRITE处理的可能不只是你要屏蔽的文件的内容。还有很少该目录下面系统记录的隐藏文件可能被你屏蔽了。那些东西可能是系统必须写入的。写入失败的话,就会有这个提示。。其实你可以用filemon 观察一下,系统写一个a.txt文件的话,该目录下在有很多系统文件会被修改。
游客

返回顶部