【发布时间】:2011-08-15 17:18:52
【问题描述】:
我有一个设备和该设备的驱动程序。我想做的是构建一个模拟 USB 设备以与第三方应用程序通信的应用程序。
更具体地说,我正在尝试构建一个应用程序,该应用程序可以模拟模仿 Microsoft Zune 的 USB 设备。我想这样做,以便我的应用程序可以注册为 zune 设备,然后与客户端通信。我已经在我的应用程序中添加了几个 DLL,以尝试确定告诉软件连接的设备是合法 zune 的调用,但到目前为止我运气不佳。
我是这种类型的开发新手——即模仿硬件设备,而且我在导入用 C/C++ 编写的 dll 方面不是很有经验。我正在使用 Visual Studio 2010 (.net 4.0) 来开发我的应用程序,如果有人可以为我提供模仿硬件的任何帮助,我将不胜感激。我确实有设备驱动程序,Visual Studio 拒绝直接引用。我还有一个实际的物理设备,所以我可以在设备管理器中查看它使用的驱动程序。
目标如下
- 应用程序将自己注册为 USB 设备,以类似于虚拟克隆驱动器模仿 DVD 播放器的方式模仿 Microsoft Zune。
- 应用程序被 zune 客户端识别为有效的 microsoft zune。
- Zune 软件与应用程序一起工作,就像它与硬件设备一样(同步等)
【问题讨论】:
-
您需要您的模拟 Zune 来完成普通 Zune 可以做到的所有(至少就 USB 接口而言)?您基本上将不得不编写 Zune 固件的很大一部分。驱动程序和固件是完全不同的动物。你愿意为此投入多少时间?去买 100 个真正的 Zune 可能会更便宜...
-
它不会执行所有功能。理想情况下,它将通过同步,例如,您可以设置应用程序以将媒体传递到指定位置。我想让 zune 软件将设备识别为有效,允许您通过 zune 客户端选择同步策略,然后将适当的媒体同步到应用程序指向的任何位置。同步部分实际上很容易。我可以通过客户端 dll 看到如何做到这一点。我想避免让我的应用程序支持选择要同步的媒体。我知道这可能会更容易。
-
umockdev 帮助模拟 USB 设备 stackoverflow.com/a/43917529/6180077
标签: c# c++ mocking hardware-interface zune