请教zwOpenFile以及zwCreateFile的问题

zhxw617   2010-2-1 18:34 楼主
我发现一个很奇怪的问题:
在zwOpenFile中,打开一个文件夹:\??\c:\1\2,其中1和2都是文件夹,如果我传递了FILE_DIRECTORY_FILE | FILE_OPEN_FOR_BACKUP_INTENT 作为ZwOpenFile最后的一个参数OpenOptions,则实际上打开的是\??\c:\1文件夹,如果OpenOptions参数没有FILE_OPEN_FOR_BACKUP_INTENT 标志,但是有FILE_DIRECTORY_FILE 标志,打开的却是\??\c:\1\2文件夹。
请问:FILE_DIRECTORY_FILE参数的作用是什么?表示要打开一个文件夹吗?

回复评论 (12)

楼主的问题很莫名,应该讲的详细点。
点赞  2010-2-1 20:04
友情帮顶下。

MARK.
点赞  2010-2-1 21:23
引用: 引用 1 楼 codesnail 的回复:
楼主的问题很莫名,应该讲的详细点。

我其实要问的是。FILE_DIRECTORY_FILE这个参数具体作用是什么?
点赞  2010-2-2 01:48
FILE_OPEN_FOR_BACKUP_INTENT指定用于备份,FILE_DIRECTORY_FILE表示打开或创建一个目录
点赞  2010-2-2 09:18
FILE_DIRECTORY_FILE表示要打开的是目录。
FILE_OPEN_FOR_BACKUP_INTENT是用户态使用的,驱动程序不要用这个标志。
点赞  2010-2-2 13:03
引用: 引用 6 楼 cnzdgs 的回复:
FILE_DIRECTORY_FILE表示要打开的是目录。
FILE_OPEN_FOR_BACKUP_INTENT是用户态使用的,驱动程序不要用这个标志。

LZ正解,最好别用用户态的标志,否则出问题,很难找原因
点赞  2010-2-2 15:42
引用: 引用 6 楼 cnzdgs 的回复:
FILE_DIRECTORY_FILE表示要打开的是目录。
FILE_OPEN_FOR_BACKUP_INTENT是用户态使用的,驱动程序不要用这个标志。

我观察了系统的调用,有时候明明是打开一个文件夹,他却没有指定FILE_DIRECTORY_FILE这个表示,即时说把文件夹作为文件打开的意思吗?
点赞  2010-2-3 13:01
只为每天10分
点赞  2010-2-3 14:27
路过,学习!
点赞  2010-2-3 15:11
有人知道么?
点赞  2010-2-3 23:02
引用: 引用 8 楼 killsjw 的回复:
我观察了系统的调用,有时候明明是打开一个文件夹,他却没有指定FILE_DIRECTORY_FILE这个表示,即时说把文件夹作为文件打开的意思吗?

我记得文件夹是不能作为文件打开的,你看看这类调用是不是失败了。
点赞  2010-2-3 23:27
好的,谢谢各位,现在结贴
点赞  2010-2-6 19:18
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复