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

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

楼主#
更多 发布于:2005-07-10 14:25
  最近在写驱动时,发现我利用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}
     [p:4]
strpic
驱动小牛
驱动小牛
  • 注册日期2006-11-01
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望238点
  • 贡献值0点
  • 好评度156点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2007-03-26 18:26
MSDN里说打开一个Volume时CreateFile必须选择FILE_SHARE_WRITE,但没有说明原因。
kirov
驱动牛犊
驱动牛犊
  • 注册日期2006-05-23
  • 最后登录2008-03-19
  • 粉丝0
  • 关注0
  • 积分190分
  • 威望21点
  • 贡献值0点
  • 好评度20点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2007-03-29 18:04
当使用FILE_SHARE_WRITE的时候,windows就会锁定这个卷了
wanted999
驱动牛犊
驱动牛犊
  • 注册日期2006-03-28
  • 最后登录2012-08-13
  • 粉丝0
  • 关注0
  • 积分519分
  • 威望429点
  • 贡献值0点
  • 好评度48点
  • 原创分0分
  • 专家分0分
地板#
发布于:2007-07-21 16:42
M$经常偷偷地干坏事!
游客

返回顶部