阅读:1975回复:10
请教Word另存为的问题
把所有word文件的非FILE_OPEN的操作都禁止了,但是word还是能成功的另存为。通过追踪发现,word先发一个FILE_OVERWRITE_IF失败后,又发FILE_OPEN,再发FILE_OVERWRITE_IF失败后,再发FILE_OWVERWRITE_IF,竟然另存为就成功了,不懂word是如何创建的这个文件。
请大侠赐教,先谢了! |
|
|
沙发#
发布于:2008-05-14 09:04
没人解答嘛,自己顶一下
|
|
|
板凳#
发布于:2008-05-20 19:38
会不会是打开了已经存在的某临时文件保存完成后重命名给你的?
|
|
地板#
发布于:2008-05-20 19:38
用FILESPY查一下就知道了,不会是后面一个FILE_OWVERWRITE_IF操作成功了吧?那最好是贴代码段出来看看是如何禁止其创建文件的
|
|
地下室#
发布于: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) |
|
|
5楼#
发布于:2008-05-21 12:54
试试返回其它失败值,如失败等
|
|
6楼#
发布于:2008-05-21 14:28
谢了!
我用失败和函数未实现,都不可以的 |
|
|
7楼#
发布于:2008-06-13 15:18
帮你顶一下。
|
|
8楼#
发布于:2008-06-16 12:07
确实是个问题啊
大侠们帮看看啊 |
|
|
9楼#
发布于:2008-06-16 23:20
可以使用FileTest使用不同的参数试试.看看你的驱动到底是在哪里处理疏忽了.
建议使用FileSpy跟踪Word创建的文件,看看是在哪一步创建成功的不就知道为什么没过滤掉了? |
|
10楼#
发布于:2008-06-17 15:05
多谢各位了。
word在另存时,生成一个.tmp的临时文件。 如果禁止word创建临时文件,在打开word操作时会出现问题 |
|
|