阅读:1556回复:6
能在IRP_MJ_CREATE下區分目前Irp 的是目錄或文件嗎
如題,如果可以該怎麼做?
找到的資料都是在IRP_MJ_DIRECTORY_CONTROL下處理... 沒有人有這種需求嗎? |
|
沙发#
发布于:2007-10-18 11:21
BooleanFlagOn(IrpSp->Parameters.Create.Options, FILE_DIRECTORY_FILE);
|
|
|
板凳#
发布于:2007-10-18 11:39
最好是查询文件系统,因为有可能在create irp中,既没有FILE_DIRECTORY_FILE标志,也没有FILE_NON_DIRECTORY_FILE标志,这样就无法区分是打开文件还是目录了。
|
|
地板#
发布于:2007-10-18 12:15
IRP_MJ_CREATE下區分目前Irp 的是目錄或文件结果不一定准确,所以还是不要这样弄。
|
|
地下室#
发布于:2007-10-29 23:39
应该在在IRP_MJ_DIRECTORY_CONTROL下做
PFILE_BOTH_DIR_INFORMATION dirInfo=Irp-> UserBuffer; if( FILE_ATTRIBUTE_DIRECTORY & dirInfo-> FileAttributes) { ///directory.. } 在IRP_MJ_CREATE中,“前人”有记载,我没做过,呵呵 IrpSp-> Parameters. Create.Options&FILE_DIRECTORY_FILE && IrpSp-> Parameters. Create.FileAttributes&FILE_ATTRIBUTE_DIRECTORY 好象是目录的(FileObject-> FileName.Buffer)[wcslen(FileObject->FileName.Buffer)-1]==L'\\'; 不一定准确啊。 |
|
5楼#
发布于:2007-10-30 09:54
设置完成函数,在完成函数中判断:IrpSp-> Parameters. Create.Options&FILE_DIRECTORY_FILE
|
|
|
6楼#
发布于:2007-10-30 10:22
PFSRTL_COMMON_FCB_HEADER fcb = (PFSRTL_COMMON_FCB_HEADER) FileObject->FsContext;
if (fcb->NodeTypeCode == FAT_NTC_FCB) return TRUE; else if (fcb->NodeTypeCode == NTFS_NTC_FCB) return TRUE; return FALSE; 这样判断出来行不行?好像是从tooflat的那个加密代码里看到的,这个判断的有问题吗? |
|