重启USB设备?

时间:2017-04-18 20:40:06

标签: c# windows usb wdk

我正在对一个设备进行故障排除,该设备只有在拔下插头并插回PC上的USB端口后才能工作。

与设备通信的应用程序是用C#编写的。 所以我需要在C#中使用编程方式,或者批量文件等,以重置USB设备。

到目前为止,我已经尝试过使用devcon.exe工具,但这似乎与物理删除和添加它的工作不同。

是否可以使用Win32_USBController以某种方式通过端口控制USB设备的电源? MSDN Link

也许以类似的方式,我找到了CIM_Controller类,它具有Reset()功能。 MSDN Link

在Windows驱动程序框架/工具包中重置USB端口的工具似乎无法通过库或其他方式轻松访问,除非我错了,否则无需先创建实际的驱动程序。

由于

1 个答案:

答案 0 :(得分:-1)

我建议您导航到该目录并找到该设备。右键单击它,然后在快捷菜单中单击弹出。应用程序和操作系统应该处理该设备。 "拔掉"是一个坏主意。 USB设备,尤其是闪存驱动器而不会弹出它们。您最终可能会遇到打开文件错误。

如果问题没有弹出设备,则问题可能出在应用程序上。如果应用程序在设备上打开文件并且必须拔出设备才能正常运行,那么应用程序可能无法正常关闭打开的文件...

只是说

您可以查看SO链接:How to programmatically unplug & replug an arbitrary USB device?

并通读了...... 听起来像你的扫描仪正在完成一项任务,然后关闭它的帖子。它仍然插在电脑上,但电脑却没有看到电脑。它。转到目录,查看它是否仍在目录中......

一旦设备关闭,

拔出端口什么都不做。重新插入重新连接电子设备,PC意识到设备完成了另外一项任务。然后再次关闭它的端口。

Dr t