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