如何在minifilter 判断操作的文件对象是目录还是文件呢?
有很多人发现答案是 Data->Iopb->Parameters.Create.Options & FILE_DIRECTORY_FILE 是否成立
不过也有很多人发现,上面的方法并不能很好的工作,有时候操作的对象是目录,上面的判断却没有成立。
----------------------------------------------------
原因是:
当 IRP_MJ_CREATE 操作创建目录的时候,一定要设置 FILE_DIRECTORY_FILE 标志,打开目录的时候,却不需要。
因此在打开目录的时候,上面的判断方法就不能够很好的工作。
如何设置了 FILE_DIRECTORY_FILE 标志去打开普通的文件,则操作会失败。
---------------------------------------------------
FltIsDirectory 可以很好的解决这个问题,不过需要在IRP_MJ_CREATE 的 PostOperation 中调用。