阅读:990回复:4
我写驱动的时候的一个问题!!请大家帮助!!
安装以后可以使用,并能起到反删除的目的。可是当我将这个驱动注册为系统启动以后就开始运行的那种后,当我重起计算机。系统只能进到可以看到2000桌面,然后就重新启动了。
我使用SOFTICE调试了一下看到了这个错误 //设置正确的得到路径的 memset(TempInstallDir,0,255); memcpy(TempInstallDir,HideBobyDir,sizeof(HideBobyDir)); strcat(TempInstallDir,"\FileLog\UnDelDir.txt"); //TempInstallDir转换成ANSI_STRING RtlInitString(&TempInstall_Ansi,TempInstallDir); pHideFileDir.Buffer = (PWSTR)ExAllocatePool(PagedPool,1024); DbgPrint("创建pHideFileDir.Buffern"); RtlZeroMemory(pHideFileDir.Buffer,1024); pHideFileDir.MaximumLength = 1024; RtlAnsiStringToUnicodeString(&pHideFileDir,&TempInstall_Ansi,TRUE); 当执行下面的代码的时候: RtlAnsiStringToUnicodeString(&pHideFileDir,&TempInstall_Ansi,TRUE); 提示错误: Bread due to page Fault (0Eh), Fault=0002 这是为什么那??? 并且这个问题不是说每次都出现的。 |
|
沙发#
发布于:2004-07-15 08:10
估计是你申请的是分页内存PagedPool,
改称非分页内存试一试 |
|
|
板凳#
发布于:2004-08-05 13:22
当你在DISPATCH_LEVEL以上的中断级申请可分页区,会导致系统崩溃。
|
|
地板#
发布于:2004-08-11 13:25
pHideFileDir.Buffer = (PWSTR)ExAllocatePool(PagedPool,1024);
这句 |
|
|
地下室#
发布于:2004-08-11 20:54
改成这样试一是
pHideFileDir.Buffer = (PWSTR)ExAllocatePool(NonPagedPool,1024); |
|
|