首页
社区
课程
招聘
[求助]minifitler预打开文件!
发表于: 2011-11-15 21:13 6324

[求助]minifitler预打开文件!

2011-11-15 21:13
6324
我在minifitler的precreate使用FltCreateFile创建一个文件,然后写入内容,但是每当我新建的时候,就会新建很多文件,知道堆栈溢出,创建了999个文件,貌似是FltCreateFile导致产生了重入,但是我已经将回调数据里的create.options改成FILE_OPEN,求解答啊!!!!
status = FltCreateFile(FltObjects->Filter,
                                FltObjects->Instance,
                                &hFile,
                                desired_access,
                                &ob,
                                &IoStatus,
                                NULL,
                                file_attri,
                                share_access,
                                disposition,
                                create_options,
                                NULL,
                                0,
                                IO_IGNORE_SHARE_ACCESS_CHECK
                                ) ;
                        if (!NT_SUCCESS(status))
                        {
                                __leave ;
                        }
Data->Iopb->Parameters.Create.Options &= 0x00ffffff;   
disp = FILE_OPEN
        Data->Iopb->Parameters.Create.Options |= (disp << 24);

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 107
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
在minifitler的precreate使用FltCreateFile创建一个文件
不是貌似  从创建999个文件来看绝对是重入.
不过我记得MINIFILTER应该是不过滤自己的函数的.
总之这个程序开始的思路都不是好方向,能不在过滤CREATE里面搞CREATE那是最好
2011-11-16 11:53
0
雪    币: 30
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
我查看了一下应该不是重入导致的,因为我用FltCreateFile创建了文件,获取了文件对象,并没有修改Data中FILE_OBJECT,导致PostCreate中截获到的Data中Iostatus提示文件已存在,然后继续发送创建请求。
2011-11-17 20:33
0
雪    币: 107
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4

我说绝对是重入和MINIFILTER不过滤自己的函数本身就有矛盾
不过我主要意思是我觉得这个思路方向  很多问题都是这个思路方向本身就会触发的
能不在过滤CREATE里面搞CREATE那是最好
2011-11-18 10:57
0
雪    币: 12
活跃值: (773)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
哥们,是创建了1000个文件吧,0到999
2011-12-6 14:49
0
雪    币: 33
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
第二个参数,看仔细
Instance
An opaque instance pointer for the minifilter driver instance that the create request is to be sent to. The instance must be attached to the volume where the file or directory resides. This parameter is optional and can be NULL. If this parameter is NULL, the request is sent to the device object at the top of the file system driver stack for the volume. If it is non-NULL, the request is sent only to minifilter driver instances that are attached below the specified instance.
2011-12-6 16:49
0
游客
登录 | 注册 方可回帖
返回
//