我的程序运行正常,在\"设备管理器\"中删除驱动也正常,但是在下面两种情况下会出问题:1.当我没有手动卸载驱动而直接拔掉板卡后重起机器,则win2000加载运行时在进入系统的时候会自动再次重起,且每次都是这样2。当我更新板卡的驱动用另外一个可用的但和这个完全不...
全文
回复(12) 2003-08-26 12:09 来自版块 - 内核编程
表情
airy1727AllenZh 谢谢你这么热心啊,呵呵,我的问题解决了。原因是这样的,是在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)
airy1727AllenZh 我的DO在DriverEntery和AddDevice中都创建了,为了支持多卡才这样做的。 在DriverEnteryhe中创建的这个有什么关系呢? 另外,在系统启动加载驱动的时候,它的具体顺序是什么呢???我想要是把卡给拔掉的...(2003-08-28 21:06)
AllenZhAllenZh 我直接删除驱动的时候,处理IRP_MN_REMOVE_DEVICE一切正常,在调用IoDeleteDevice正确释放! 直接删除和拔插是有区别的(2003-08-28 18:00)
AllenZh用softice跟的时候出现这样的情况。 当我关机将卡拔掉后,重新启动,我把StartType设为2,则我在进入win2000的时候用softice截取到我在驱动中打印出来的消息。 可以看到系统仍然加载了驱动load32 START=.....MOD=\"我的驱...(2003-08-28 17:59)
airy1727AllenZh 我直接删除驱动的时候,处理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)

返回顶部