阅读:1176回复:3
句柄打开时拨插USB设备,closehandle后再打开设备失败的问题
做了一个usb设备的驱动程序,在应用程序还持有usb设备对象句柄的情况下(此时已没有i/o操作),拔掉usb设备,然后再插上usb设备,closehandle设备对象句柄,当再次打开设备时失败。经过分析,再次打开设备时,枚举不到设备,但此时驱动已经加载(可通过bus hound对通道发送命令),只是没有设备对象(在closehandle时被删掉了)。在论坛上找了一个解决方法:CreateFile();然后相应的IO操作;CloseFile()。我觉得这个方法不是很好,不知道谁有更好的解决方法?
|
|
|
沙发#
发布于:2007-03-01 09:15
我看问题应该还在驱动里,重新插入时应该生成一个新设备对象,原来的那个设备对象在CloseHandle后被删除,但新设备对象应该可以工作,你看看你的AddDevice例程是如何工作的吧
|
|
|
板凳#
发布于:2007-03-01 16:37
我看过AddDevice例程,当我未打开设备时,驱动都能正常工作,但设备打开后拔插usb设备就会出现上面的问题,再拔插一次又恢复正常
|
|
|
地板#
发布于:2007-03-02 11:02
这个问题与下面两个帖子中说的问题一样,那位大牛看看吧,说说解决方法。
http://bbs.driverdevelop.com/htm_data/9/0109/3539.html http://bbs.driverdevelop.com/read.php?tid-87539.html |
|
|