首页
社区
课程
招聘
[求助]文件过滤驱动,IRP完成事件中访问IRP::UserBuffer报错PAGE-FAULT-IN-NONPAGED-AREA
发表于: 2012-9-13 12:09 4941

[求助]文件过滤驱动,IRP完成事件中访问IRP::UserBuffer报错PAGE-FAULT-IN-NONPAGED-AREA

2012-9-13 12:09
4941
驱动是个简单的隐藏文件驱动,代码是依赖《寒江独钓》的代码,就是对IRP_MJ_DIRECTORY_CONTROL+IRP_MN_QUERY_DIRECTORY的IRP操作,执行完后通过IRP::UserBuffer获得 结果信息,然后做隐藏;

问题是这样的,比方说 我先打开一个Explorer.exe,然后加载驱动,然后在已经打开的explorer中浏览,驱动是正常工作的;但如果我先加载驱动,然后创建一个任意一个应用程序进程,如Explorer.exe,regedit.exe......就会引起PAGE-FAULT-IN-NONPAGED-AREA异常,WinDbg定位的错误位置也是莫名其妙,是我循环遍历结果数据的第一行;

我的代码类似:

PFILE_ID_BOTH_DIR_INFORMATION pFileInfo = (PFILE_ID_BOTH_DIR_INFORMATION)IRP->UserBuffer;

BOOL bLastOne = TRUE;
KdPrint(("ABC"));
do
{
        bLastOne = !pFileInfo->NextEntryOffset;
        ......//  检查pFileInfo->FileName,隐藏或者不隐藏
}

总是定位在循环的第一句“bLastOne = !pFileInfo->NextEntryOffset;”,前面的KdPrint也没打出来。

搞了几天了,没办法,求高人指点

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 3836
活跃值: (4142)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
顶。。。。。。。
2012-9-28 17:24
0
雪    币: 65
活跃值: (112)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
3
不要在complete routine里做事
2012-9-28 18:05
0
游客
登录 | 注册 方可回帖
返回
//