版块
论坛
喜欢
话题
应用
搜索
登录
注册
tigerL的个人空间
访问量
3
新鲜事
帖子
资料
http://bbs3.driverdevelop.com/index.php?m=space&uid=72317
(敬请关注)usb设备对象句柄没有全部close的情况下,拔掉设备产生的问题!
问题陈述:做了一个usb设备的驱动程序,在应用程序还持有usb设备对象句柄的情况下(此时已没有i/o操作),拔掉usb设备,然后再插上usb设备,会导致usb设备无法正常加载。IoCreateDevice设备对象的时候没有给DeviceName,而是IoRegisterDevic...
全文
回复
(
5
)
2004-08-06 23:34
来自版块 -
USB驱动开发
◆
◆
表情
告诉我的粉丝
提 交
jarod_jy
:
在驱动中能否释放打开设备的句柄呢?
(2007-03-02 16:17)
回复
wjt810907
:
引用第2楼cockliujun于2004-08-11 11:39发表的“”: 只有在所有设备对象句柄都被释放以后,才会 IRP_MN_REMOVE_DEVICE,这在 DDK 的文档里已经写的很清楚了。所以你想在“在应用程序持有设备对象句柄的情形下,仍然彻底完成对驱动程序的卸载”...
(2007-03-02 11:17)
回复
jarod_jy
:
按照2楼的方法,在驱动中是不是说不能完全解决这个问题,而要在应用层来解决? 有没有可能在驱动中解决这个问题,因为应用层不是我来编写?
(2007-03-02 10:33)
回复
cockliujun
:
只有在所有设备对象句柄都被释放以后,才会 IRP_MN_REMOVE_DEVICE,这在 DDK 的文档里已经写的很清楚了。所以你想在“在应用程序持有设备对象句柄的情形下,仍然彻底完成对驱动程序的卸载”是不可能的。 但是在usb设备被子突然拔出时驱动会收到 IRP_MN_SUR...
(2004-08-11 11:39)
回复
zfw
:
笨办法:在应用程序中定时检测设备是否存在,如果不存在了就CloseHandle
(2004-08-11 09:26)
回复
tigerL
加关注
写私信
0
关注
0
粉丝
134
帖子
返回顶部