阅读:1715回复:5
(敬请关注)usb设备对象句柄没有全部close的情况下,拔掉设备产生的问题!
问题陈述:
做了一个usb设备的驱动程序,在应用程序还持有usb设备对象句柄的情况下(此时已没有i/o操作),拔掉usb设备,然后再插上usb设备,会导致usb设备无法正常加载。IoCreateDevice设备对象的时候没有给DeviceName,而是IoRegisterDeviceInterface注册了一个设备接口类guid。跟踪此过程,发现pnp管理器没有发送IRP_MN_REMOVE_DEVICE的pnp请求,而必须等到应用程序close所有设备对象句柄之后,才会发出。 请问,如何在应用程序持有设备对象句柄的情形下,仍然彻底完成对驱动程序的卸载?请高人指点迷津! |
|
|