卸载驱动蓝屏

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下测试的。。。寻找原因和解答?????


...全文
46 点赞 收藏 2
写回复
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
geniuscaobo 2010-07-22
现在简化了的代码是蓝的,再简就不蓝了。
回复
fly4free 2010-07-22
也许简化了的部分就是关键
回复
发动态
发帖子
硬件/系统
创建于2007-09-28

2589

社区成员

VC/MFC 硬件/系统
申请成为版主
社区公告
暂无公告