-
-
[求助]文件过滤驱动,IRP完成事件中访问IRP::UserBuffer报错PAGE-FAULT-IN-NONPAGED-AREA
-
发表于:
2012-9-13 12:09
4941
-
[求助]文件过滤驱动,IRP完成事件中访问IRP::UserBuffer报错PAGE-FAULT-IN-NONPAGED-AREA
驱动是个简单的隐藏文件驱动,代码是依赖《寒江独钓》的代码,就是对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也没打出来。
搞了几天了,没办法,求高人指点
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!