阅读:2653回复:4
IoCreateFileSpecifyDeviceObjectHint创建的文件如何删除
设想是拷入特定盘符下的所有非目录文件通过返回STATUS_REPARSE进行重定向,这就需要过滤IRP_MJ_CREATE时判断到底是不是目录,是目录的直接下发,不是目录则修改文件名并返回STATUS_REPARSE。判断是否目录是通过IoCreateFileSpecifyDeviceObjectHint,然后新建IRP_MJ_QUERY_INFORMATION来查询该文件INFORMATION,最后判断出是否目录。判断出是目录还好,问题是判断出不是目录,现在就需要转发,但IoCreateFileSpecifyDeviceObjectHint已经创建了一个文件,且改文件提示是被占用状态,改怎么删除呢?或者有其他不需要IoCreateFileSpecifyDeviceObjectHint的方法判断目标文件是否目录吗?
|
|
沙发#
发布于:2010-05-28 16:53
irpsp->Parameters.Create.Options & FILE_DIRECTORY_FILE
只是这样,好像还不足以确定不是目录。所以才需要IoCreateFileSpecifyDeviceObjectHint,创建完成之后才能真正确定。 |
|
板凳#
发布于:2010-06-01 16:52
明白了,谢谢michaelgz
|
|