【问题标题】:Power cycling a USB device?重启 USB 设备?
【发布时间】:2017-04-18 20:40:06
【问题描述】:

我正在对仅在拔下并重新插入 PC 上的 USB 端口后才能工作的设备进行故障排除。

与设备对话的应用程序是用 C# 编写的。 所以我需要 C# 或批处理文件等中的编程方式来重置 USB 设备。

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

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

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

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

谢谢

【问题讨论】:

标签: c# windows usb wdk


【解决方案1】:

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

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

只是说说

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

然后通读... 在我看来,您的扫描仪正在完成一项任务,然后将其关闭。它仍然插在 PC 上,但 PC 看不到它。去目录下看看是否还在目录中……

一旦设备关闭端口就拔掉插头不会做任何事情。重新插入会重新连接电子设备,PC 会意识到该设备完成了另一项任务。然后再次关闭其端口。

博士

【讨论】:

  • 没有文件被打开,这似乎是某种配置问题(它是扫描仪设备)。
猜你喜欢
  • 2019-12-06
  • 1970-01-01
  • 1970-01-01
  • 2011-03-09
  • 2015-12-27
  • 2018-07-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多