首页
社区
课程
招聘
windows2003系统下卸载驱动直接蓝屏
发表于: 2013-3-3 20:30 4259

windows2003系统下卸载驱动直接蓝屏

2013-3-3 20:30
4259
所谓学习,你至少也要看懂别人那么用的原因吧,都不看懂别人代码的真实意图,就照搬个INIT_CODE来,不蓝才怪。

顺便说一句,那个INIT_CODE的意思是,驱动加载完成后便从内核卸载掉,以后再不可能进入内存。

你自己都指定了Unload Routine不在内存了,卸载时人家去哪找你的UnLoadFunc??????

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 47
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
1




#include <ntddk.h>
#define INITCODE code_seg("INIT") 
#define PAGECODE code_seg("PAGE") /*表示内存不足时,可以被置换到硬盘*/
#pragma INITCODE /*指的代码运行后 就从内存释放掉*/

NTSTATUS DriverEntry(PDRIVER_OBJECT pDriverObject,PUNICODE_STRING RegistryPath) 
{
 pDriverObject->DriverUnload=DDK_Unload;
 return STATUS_SUCCESS;
}


VOID DDK_Unload (IN PDRIVER_OBJECT pDriverObject)
{
 KdPrint(("驱动成功被卸载...OK-----------")); 
 DbgPrint("卸载成功");
}


即使只有这一段代码,卸载驱动的时候都会蓝屏,每次驱动都可以成功加载,不卸载就没事
用WDK的2003 x86 Checked Build Environment 编译出来的驱动文件
2013-3-3 21:08
0
雪    币: 371
活跃值: (72)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
2
删掉这段  #pragma INITCODE /*指的代码运行后 就从内存释放掉*/

估计解决问题~
2013-3-3 21:22
0
雪    币: 1372
活跃值: (5353)
能力值: ( LV13,RANK:240 )
在线值:
发帖
回帖
粉丝
3
[QUOTE=学雄;1147628]删掉这段  #pragma INITCODE /*指的代码运行后 就从内存释放掉*/

估计解决问题~[/QUOTE]

+10086
2013-3-3 22:03
0
雪    币: 47
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
[QUOTE=学雄;1147628]删掉这段  #pragma INITCODE /*指的代码运行后 就从内存释放掉*/

估计解决问题~[/QUOTE]

果然是这一句的问题。。在XP加这一句就没问题   2003加上就会蓝屏,不释放没有问题么。。

另外请问下有没有2003可以用的内核反汇编修改工具   类似于Kernel Detective那样的
2013-3-3 22:48
0
游客
登录 | 注册 方可回帖
返回
//