首页
社区
课程
招聘
[求助]miniFilter PreSetInformationFile 修改参数
发表于: 2012-5-21 21:08 7554

[求助]miniFilter PreSetInformationFile 修改参数

2012-5-21 21:08
7554
我在PreSetInformationFile中修改参数

RtlInitUnicodeString(&ustrTmp, L"\\??\\c:\\abc\\abc\\acccc.txt");
pFileRenameInformation = ExAllocatePoolWithTag(NonPagedPool, sizeof(FILE_RENAME_INFORMATION) + ustrTmp.Length, MEM_TAG);

pFileRenameInformation->RootDirectory = pFileRenameInformationOld->RootDirectory;

pFileRenameInformation->ReplaceIfExists = pFileRenameInformationOld->ReplaceIfExists;

pFileRenameInformation->FileNameLength = ustrTmp.Length;

RtlCopyBytes(pFileRenameInformation->FileName,  ustrTmp.Buffer, ustrTmp.Length);

Data->Iopb->Parameters.SetFileInformation.Length = sizeof(FILE_RENAME_INFORMATION) + ustrTmp.Length;

Data->Iopb->Parameters.SetFileInformation.InfoBuffer = pFileRenameInformation;

FltSetCallbackDataDirty(Data);

Data->IoStatus.Information = 0;

Data->IoStatus.Status = STATUS_REPARSE;

return FLT_PREOP_SUCCESS_WITH_CALLBACK;

可是在PostSetInformationFile 中
Data->Iopb->Parameters.SetFileInformation.InfoBuffer还是原来的地址 根本没修改成功啊   为什么啊   求内核大人指教~~~

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

收藏
免费 1
支持
分享
最新回复 (4)
雪    币: 107
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
BUFFER这东西 你可以看看WDK里面SWAPPBUFFER的例子
那个就是替换DATA参数的很好的例子
2012-5-21 22:55
0
雪    币: 229
活跃值: (503)
能力值: ( LV10,RANK:170 )
在线值:
发帖
回帖
粉丝
3
preoperation 中修改callbackdata是不会影响postoperation中的callbackdata的
只会对下一层有影响,若想在post中得到某些pre中的设置,可以通过ctx传过来
2012-5-22 09:21
0
雪    币: 221
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
楼上~~~~~~~
2012-5-22 10:48
0
雪    币: 458
活跃值: (421)
能力值: ( LV9,RANK:610 )
在线值:
发帖
回帖
粉丝
5
preoperation 中修改callbackdata是不会影响postoperation中的callbackdata的
只会对下一层有影响

这个是对的

关键我想修改 ‘新名字’参数
比如应用层修改 c:\a.txt => c:\b.txt
我想在驱动里把 c:\b.txt 修改为 c:\c.txt 而且应用层还认为修改成功了  实际上重命名成 c.txt了

不知道我表达清楚了没有。
2012-5-22 21:58
0
游客
登录 | 注册 方可回帖
返回
//