【问题标题】:Virtual USB device for Windows?Windows 的虚拟 USB 设备?
【发布时间】:2014-01-03 04:28:16
【问题描述】:

我正在研究可用于创建虚拟 USB 设备(例如,键盘或大容量存储设备)的选项,以便根据需要模拟其功能以允许用户空间应用模拟其随意插入/移除。

我不清楚的是如何模拟插入/移除。似乎一种选择是模拟(虚拟)USB集线器并让它伪造设备到达/离开事件(我还将为我的虚拟USB设备提供设备驱动程序,这就是我的设备逻辑所在的位置)。

我了解 Windows 内核(编写过 NDIS 微型端口驱动程序),不怕 SoftICE,但 USB 不是我的领域,只是从它开始。

我是否在使用虚拟中心方法的正确轨道上?如果支持,是否正在开发 WDK 支持的虚拟集线器驱动程序(似乎不支持)?

还有其他选择吗?

--

(编辑)忘了提 - 我知道 DSF,但它是 W8 上的not supported

【问题讨论】:

  • 你看过 USBIP 项目(在 sourceforge 上)吗?他们的 USB over IP 实现正是这样做的,并且他们提供了非常稳定的 Windows 驱动程序!您最终可能会编写一个 USB/IP 服务器作为更简单(并且网络透明作为奖励)的替代方案。
  • 呃!我知道这个项目,但我不知道为什么我没有研究他们如何模拟设备插入/移除。很有帮助,尤金。非常感谢。
  • Angstrom,我可能已经忘记了自己,如果我不久前只是在玩弄它:两个 USB 设备,都使用完全相同的芯片,但 VID/PID 不同 - 一个供应商提供没有适用于较新 Windows 版本的驱动程序,另一个则有,但硬锁定到 VID/PID ... 简单地修补 USBIP 以即时更改 VID/PID,问题已解决。
  • Elegant :) 你在 W8 中测试过吗?
  • TBH:我们的软件都不支持 W8(或 Vista)。仅支持可用的 Windows 版本。我们的客户对此非常满意。明天我可以向这些人询问有关 W8.1 的情况并回帖。前面提到的补丁是在服务器端完成的。

标签: windows usb virtual drivers


【解决方案1】:

我是否在使用虚拟中心方法的正确轨道上?

简而言之 - 是的,我是对的。

USBIP 就是这样做的,这是一种相对简单的方法。另外,请参阅 Eugen 的 this comment

【讨论】:

  • 您写过一篇关于您如何编写自己的虚拟 USB 设备的博文吗?我们中的一些人对这样做很感兴趣,并且(在 2017 年仍然)没有可以通过 google 或 dadduckgo 搜索找到的好文章。
  • 我不喜欢写博客文章。对不起。
  • 这对我们其他人来说是不幸的。
  • 别误会我的意思:我不是故意轻视你,我真的是说这对我们其他人来说是不幸的。这是一个 QA 网站,您找到了答案,但没有在这里完整地写出来,以至于(基于答案文本)我们可以轻松地做到这一点。你不是博客类型,这不关别人的事,但对我们来说不幸的。我们,(例如,发现这个问题并希望答案对他们有帮助的 SO 上的每个人)不会真的找到他们希望找到的答案,所以我们必须继续寻找一些未来的 Q/A关于这个主题。
【解决方案2】:

不知道你知不知道,微软向 Win10 发布了UDE(USB 设备模拟)。

Write a UDE client driver 部分中,他们准确地描述了您想要的内容。

【讨论】:

    猜你喜欢
    • 2011-06-28
    • 2015-09-18
    • 2019-12-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-02
    • 2018-07-17
    • 2013-04-08
    相关资源
    最近更新 更多