版块
论坛
喜欢
话题
应用
搜索
登录
注册
airy1727的个人空间
访问量
0
新鲜事
帖子
资料
http://bbs3.driverdevelop.com/index.php?m=space&uid=47668
关于驱动卸载重起的问题!!!
我的程序运行正常,在\"设备管理器\"中删除驱动也正常,但是在下面两种情况下会出问题:1.当我没有手动卸载驱动而直接拔掉板卡后重起机器,则win2000加载运行时在进入系统的时候会自动再次重起,且每次都是这样2。当我更新板卡的驱动用另外一个可用的但和这个完全不...
全文
回复
(
12
)
2003-08-26 12:09
来自版块 -
内核编程
◆
◆
表情
告诉我的粉丝
提 交
airy1727
:
AllenZh 谢谢你这么热心啊,呵呵,我的问题解决了。原因是这样的,是在DriverUnload的时候出错了。IoDeleteDevice 的对象错误,用softice跟出来的。我在广州,有时间多向你请教。 minsoft 驱动很早以前就写好的,一直只在本机上用,拿到...
(2003-08-29 14:17)
回复
minsoft
:
问题就出在你两次创建了DO,而且可能这两个DO你都是在REMOVE―DEVICE时进行IoDelete的,当你插有卡并手动卸载时,会运行PnPRemoveDevice,所以没有异常,而没有插卡时,DriverEntry会执行,AddDevice不运行也没有PnP消息,那你创建的D...
(2003-08-29 11:21)
回复
AllenZh
:
因为你在DriverEntry中有创建DO(我姑且叫它Control DO,简称CDO好了,对应的在AddDevice中那些叫Function DO简称FDO),所以虽然你没有硬件,你也可以让你的驱动继续运行,当然这时有PNP到你的Control DO中,并且这时应该没有成功创建...
(2003-08-29 10:43)
回复
zshuc
:
查一下,可能在处理DriverObject->DriverUnload消息时候出错。 由于卡拔掉后,驱动在内存中仍然会被加载,它先进入DRIVERENTRY,若是找不到硬件,就会进入DriverUnload处理响应消息.
(2003-08-29 10:37)
回复
airy1727
:
AllenZh 我的DO在DriverEntery和AddDevice中都创建了,为了支持多卡才这样做的。 在DriverEnteryhe中创建的这个有什么关系呢? 另外,在系统启动加载驱动的时候,它的具体顺序是什么呢???我想要是把卡给拔掉的...
(2003-08-28 21:06)
回复
AllenZh
:
AllenZh 我直接删除驱动的时候,处理IRP_MN_REMOVE_DEVICE一切正常,在调用IoDeleteDevice正确释放! 直接删除和拔插是有区别的
(2003-08-28 18:00)
回复
AllenZh
:
用softice跟的时候出现这样的情况。 当我关机将卡拔掉后,重新启动,我把StartType设为2,则我在进入win2000的时候用softice截取到我在驱动中打印出来的消息。 可以看到系统仍然加载了驱动load32 START=.....MOD=\"我的驱...
(2003-08-28 17:59)
回复
airy1727
:
AllenZh 我直接删除驱动的时候,处理IRP_MN_REMOVE_DEVICE一切正常,在调用IoDeleteDevice正确释放!
(2003-08-28 15:54)
回复
airy1727
:
用softice跟的时候出现这样的情况。 当我关机将卡拔掉后,重新启动,我把StartType设为2,则我在进入win2000的时候用softice截取到我在驱动中打印出来的消息。 可以看到系统仍然加载了驱动load32 START=.....MOD=\"我的驱...
(2003-08-28 15:35)
回复
AllenZh
:
我的程序运行正常,在\"设备管理器\"中删除驱动也正常,但是在下面两种情况下会出问题: 1.当我没有手动卸载驱动而直接拔掉板卡后重起机器,则win2000加载运行时在进入系统的时候会自动再次重起,且每次都是这样 2。当我更新板卡的驱动用另外一个可用的但和这...
(2003-08-26 17:26)
回复
1
2
下一页 »
airy1727
加关注
写私信
0
关注
0
粉丝
44
帖子
返回顶部