问题陈述:做了一个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)

返回顶部