卸载驱动蓝屏

geniuscaobo 2010-07-22 08:03:29

#pragma INITCODE
void A()
{
PVOID Pointer = NULL;

KdPrint(("Enter ProbeTest\n"));
__try
{
KdPrint(("Enter __try block\n"));
KdPrint(("Leave __try block\n"));
}
__finally
{
KdPrint(("Catch the exception\n"));
KdPrint(("The program will keep going\n"));
}

KdPrint(("Leave ProbeTest\n"));
}

#pragma INITCODE
NTSTATUS B()
{
NTSTATUS status = STATUS_SUCCESS;
__try
{
}
__finally
{
KdPrint(("Enter finallly block\n"));

}
return status;
}

#pragma INITCODE
NTSTATUS C()
{
KdPrint(("Enter Foo\n"));

KdPrint(("Leave Foo\n"));

return STATUS_SUCCESS;
}

#pragma INITCODE
extern "C" NTSTATUS DriverEntry (
IN PDRIVER_OBJECT pDriverObject,
IN PUNICODE_STRING pRegistryPath )
{
//创建一个设备的代码,没有问题
//
//..........
//

//加上这3个函数,就会在卸载驱动的时候蓝屏
//蓝屏错误码: PAGE_FAULT_IN_NONPAGED_AREA
A();
B();
C();



//A,B,C函数是我简化了,为了方便观看。
//注释A,B,C任何一个函数都不会蓝屏。就是在三个同时存在的时候就蓝了。
//注释一个KdPrint也不蓝。太诡异了。
//程序是在checked下测试的。。。寻找原因和解答?????


...全文
167 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
geniuscaobo 2010-07-22
  • 打赏
  • 举报
回复
现在简化了的代码是蓝的,再简就不蓝了。
fly4free 2010-07-22
  • 打赏
  • 举报
回复
也许简化了的部分就是关键

2,641

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 硬件/系统
社区管理员
  • 硬件/系统社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧