alwaysrun
驱动小牛
驱动小牛
  • 注册日期2006-06-01
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分1059分
  • 威望752点
  • 贡献值1点
  • 好评度98点
  • 原创分0分
  • 专家分0分
阅读:1975回复:10

请教Word另存为的问题

楼主#
更多 发布于:2008-05-13 10:37
  把所有word文件的非FILE_OPEN的操作都禁止了,但是word还是能成功的另存为。通过追踪发现,word先发一个FILE_OVERWRITE_IF失败后,又发FILE_OPEN,再发FILE_OVERWRITE_IF失败后,再发FILE_OWVERWRITE_IF,竟然另存为就成功了,不懂word是如何创建的这个文件。

请大侠赐教,先谢了!
一颗平常的心!
alwaysrun
驱动小牛
驱动小牛
  • 注册日期2006-06-01
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分1059分
  • 威望752点
  • 贡献值1点
  • 好评度98点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2008-05-14 09:04
没人解答嘛,自己顶一下
一颗平常的心!
eleqi
驱动小牛
驱动小牛
  • 注册日期2005-12-20
  • 最后登录2014-01-03
  • 粉丝4
  • 关注2
  • 积分172分
  • 威望1475点
  • 贡献值0点
  • 好评度115点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2008-05-20 19:38
会不会是打开了已经存在的某临时文件保存完成后重命名给你的?
eleqi
驱动小牛
驱动小牛
  • 注册日期2005-12-20
  • 最后登录2014-01-03
  • 粉丝4
  • 关注2
  • 积分172分
  • 威望1475点
  • 贡献值0点
  • 好评度115点
  • 原创分0分
  • 专家分0分
地板#
发布于:2008-05-20 19:38
用FILESPY查一下就知道了,不会是后面一个FILE_OWVERWRITE_IF操作成功了吧?那最好是贴代码段出来看看是如何禁止其创建文件的
alwaysrun
驱动小牛
驱动小牛
  • 注册日期2006-06-01
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分1059分
  • 威望752点
  • 贡献值1点
  • 好评度98点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2008-05-21 09:18
非常感谢两位的解答,请看是不是下面代码中存在的问题

在Create中:
ULONG ulCreateDisposition = (pIOStackLoc->Parameters.Create.Options>>24) && 0xFF;

if( FILE_OPEN != ulCreateDisposition )
  return IRP_COMPLETE(I, STATUS_ACCESS_DENIED)
一颗平常的心!
eleqi
驱动小牛
驱动小牛
  • 注册日期2005-12-20
  • 最后登录2014-01-03
  • 粉丝4
  • 关注2
  • 积分172分
  • 威望1475点
  • 贡献值0点
  • 好评度115点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2008-05-21 12:54
试试返回其它失败值,如失败等
alwaysrun
驱动小牛
驱动小牛
  • 注册日期2006-06-01
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分1059分
  • 威望752点
  • 贡献值1点
  • 好评度98点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2008-05-21 14:28
谢了!
我用失败和函数未实现,都不可以的
一颗平常的心!
bluetiger
驱动牛犊
驱动牛犊
  • 注册日期2003-02-22
  • 最后登录2010-09-09
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望100点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2008-06-13 15:18
帮你顶一下。
goodone
驱动牛犊
驱动牛犊
  • 注册日期2007-01-30
  • 最后登录2014-04-30
  • 粉丝3
  • 关注0
  • 积分372分
  • 威望174点
  • 贡献值0点
  • 好评度35点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2008-06-16 12:07
确实是个问题啊
大侠们帮看看啊
栀子花驿站 www.zhizihua.com
eleqi
驱动小牛
驱动小牛
  • 注册日期2005-12-20
  • 最后登录2014-01-03
  • 粉丝4
  • 关注2
  • 积分172分
  • 威望1475点
  • 贡献值0点
  • 好评度115点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2008-06-16 23:20
可以使用FileTest使用不同的参数试试.看看你的驱动到底是在哪里处理疏忽了.
建议使用FileSpy跟踪Word创建的文件,看看是在哪一步创建成功的不就知道为什么没过滤掉了?
alwaysrun
驱动小牛
驱动小牛
  • 注册日期2006-06-01
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分1059分
  • 威望752点
  • 贡献值1点
  • 好评度98点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2008-06-17 15:05
多谢各位了。
word在另存时,生成一个.tmp的临时文件。
如果禁止word创建临时文件,在打开word操作时会出现问题
一颗平常的心!
游客

返回顶部