首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

起用一个已经停用的usb设备

2013-08-16 
启用一个已经停用的usb设备?各位兄弟,小弟我目前碰到一问题,主机连接了两个使用了相同usb芯片的usb设备,GU

启用一个已经停用的usb设备?
各位兄弟,小弟我目前碰到一问题,主机连接了两个使用了相同usb芯片的usb设备,GUID是相同的,PID和VID相同,固件版本号不相同,问题是我想实现一功能,对其中一个usb设备进行停止,启动的动作。其中停止可以实现了,但是当停止了该usb设备后,
再启用它的话,就找不到该设备,所以也对设备调用不了SetupDiCallClassInstaller函数来再启动它了。请问各位有没有什么好方法来解决该问题,谢谢!

[解决办法]
SetupDiGetClassDevs (&m_GUID, NULL, NULL, (DIGCF_PRESENT 
[解决办法]
 DIGCF_DEVICEINTERFACE)); 
把DIGCF_PRESENT去掉试试,既然已经停用了,DIGCF_PRESENT加上也就找不到了。
[解决办法]
这个停用了 其实是硬盘进入 休眠状态  计算机无法获取(在不刷新的情况下),
想让他在此启动的话,只要向磁盘发送一个READY指令 就好了 它就启动了。
[解决办法]
直接绕过计算机 通过驱动向硬盘发送指令,它就起来了 。
SetupDiGetClassDevs (&m_GUID, NULL, NULL, (DIGCF_PRESENT 
[解决办法]
 DIGCF_DEVICEINTERFACE)); 
这个发送完以后 返回成功的话 只是代表磁盘可能已经启动了 。  但是可能还没有完全启动,
在启动过程中你给它发指令 它当然不理你了。 等几秒钟 用个sleep();
然后在发你那个指令看看 是不是就成功了呢。。  
[解决办法]
windows还不有为他分配地址的,需要低层驱动来的。
[解决办法]
添加一个id 44
[解决办法]

引用:
各位兄弟,小弟我目前碰到一问题,主机连接了两个使用了相同usb芯片的usb设备,GUID是相同的,PID和VID相同,固件版本号不相同,问题是我想实现一功能,对其中一个usb设备进行停止,启动的动作。其中停止可以实现了,但是当停止了该usb设备后,
再启用它的话,就找不到该设备,所以也对设备调用不了SetupDiCallClassInstaller函数来再启动它了。请问各位有没有什么好方法来解决……

楼主解决了?能给出解决方案?

热点排行