linweiwww
驱动牛犊
驱动牛犊
  • 注册日期2005-01-04
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分4分
  • 威望5点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1448回复:2

求助,有关CreateFile打开Volume的时候,NTfs都干了些什么?

楼主#
更多 发布于:2005-07-10 14:32
  最近在写驱动时,发现我利用CreateFile函数以只读的方式打开一个Volume的时候,如果这个Volume上有Ntfs文件系统时,它会向下层提交一个写请求!!!!而且好像是在写$MFT文件,这是为什么,我是以只读打开,为什么会引起写操作,这实在让人费解?而对于没有文件系统的卷,打开是就没有问题!
  希望高手能给予指点!!
  能否在打开的时候,不让它提交这个写请求!!!???

  下面是我打开时用的参数,
  LvHandle = CreateFile ( SymbolLinkName,
           GENERIC_READ ,
                FILE_SHARE_READ | FILE_SHARE_WRITE,
           NULL,
           OPEN_EXISTING,
           FILE_ATTRIBUTE_NORMAL,
           NULL);
  其中SymbolLinkName的值是\\?\Volume{0b8c1fd0-8a9c-11d9-beb1-806d6172696f}
zhangshengyu
驱动老牛
驱动老牛
  • 注册日期2003-10-03
  • 最后登录2016-07-26
  • 粉丝0
  • 关注0
  • 积分792分
  • 威望696点
  • 贡献值41点
  • 好评度499点
  • 原创分0分
  • 专家分0分
  • 社区居民
沙发#
发布于:2005-07-11 09:18
我也研究过,我只发现NTFS根本不支持只读介质,它肯定要写的,写不了就认为是非法介质。
你打开的时候它是肯定要写元文件来记录访问时间之类的了。
---内核开发合作或提供基础技术服务QQ:22863668 ---
linweiwww
驱动牛犊
驱动牛犊
  • 注册日期2005-01-04
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分4分
  • 威望5点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2005-07-11 13:47
晕,微软搞什么JJ嘛!
明明读,硬是搞了个写操作,现在只好屏蔽掉这个问题了!!!
游客

返回顶部