首页
社区
课程
招聘
[求助][求助]windows驱动开发技术详解问题
发表于: 2011-8-3 09:44 6208

[求助][求助]windows驱动开发技术详解问题

2011-8-3 09:44
6208
大家测试书上的代码有错误吗?我测试了几次,用了不同机器,都被无情的蓝了。都是发生在驱动卸载时,代码如下
VOID HelloDDKUnload (IN PDRIVER_OBJECT pDriverObject)
{
        PDEVICE_OBJECT        pNextObj;
        KdPrint(("Enter DriverUnload\n"));
        pNextObj = pDriverObject->DeviceObject;
        while (pNextObj != NULL)
        {
                PDEVICE_EXTENSION pDevExt = (PDEVICE_EXTENSION)
                        pNextObj->DeviceExtension;

                //删除符号链接
                UNICODE_STRING pLinkName = pDevExt->ustrSymLinkName;
                IoDeleteSymbolicLink(&pLinkName);
                //从下句开始的
                pNextObj = pNextObj->NextDevice;
               
                IoDeleteDevice( pDevExt->pDevice );
        }
}
求高人指点啊,不胜感激。。。。

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

收藏
免费 0
支持
分享
最新回复 (6)
雪    币: 55
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
自己顶下吧,泪奔啊
2011-8-3 10:19
0
雪    币: 233
活跃值: (285)
能力值: ( LV12,RANK:270 )
在线值:
发帖
回帖
粉丝
3
UNICODE_STRING pLinkName = pDevExt->ustrSymLinkName;
这一句估计要悲剧,造成后面的IoDeleteSymbolicLink挂掉了。
2011-8-3 10:44
0
雪    币: 437
活跃值: (110)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
4
VOID HelloDDKUnload(IN PDRIVER_OBJECT pDriverObject)
{
	PDEVICE_OBJECT pNextObj;
	KdPrint(("Enter driverUnload"));
	pNextObj = pDriverObject->DeviceObject;
	while (pNextObj != NULL)
	{
		PDEVICE_EXTENSION pDevExt = (PDEVICE_EXTENSION)pNextObj->DeviceExtension;
		if (pDevExt->buffer)
		{
			ExFreePool(pDevExt->buffer);
			pDevExt->buffer = NULL;
		}
		//删除符号链接
		IoDeleteSymbolicLink(&pDevExt->ustrSymLinkName);
		pNextObj = pNextObj->NextDevice;
		IoDeleteDevice(pDevExt->pDevice);
	}
}


本人写法,Windows xp sp3 下不蓝屏。
2011-8-3 11:07
0
雪    币: 55
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
谢谢哈,我试下
2011-8-3 12:28
0
雪    币: 55
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
为什么啊?请大神明示
2011-8-3 12:49
0
雪    币: 485
活跃值: (78)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
7
基础不牢,不打字了手机写麻烦
2011-8-4 07:59
0
游客
登录 | 注册 方可回帖
返回
//