c# - 通过 USB 连接模拟设备

标签 c# c++ mocking hardware-interface zune

我有一个设备和这个设备的驱动程序。我想做的是构建一个模拟 USB 设备以与第三方应用程序通信的应用程序。

更具体地说,我正在尝试构建一个应用程序,该应用程序可以模拟模仿 Microsoft Zune 的 USB 设备。我想这样做,以便我的应用程序可以注册为 zune 设备,然后与客户端通信。我已经在我的应用程序中添加了几个 DLL,以便尝试确定告诉软件连接的设备是合法 zune 的调用,但到目前为止我运气不佳。

我是这种类型的开发的新手 - 即模拟硬件设备,而且我在导入用 C/C++ 编写的 dll 方面不是很有经验。我正在使用 Visual Studio 2010 (.net 4.0) 来开发我的应用程序,如果有人能为我提供模拟硬件的帮助,我将不胜感激。我确实有设备驱动程序,Visual Studio 拒绝直接引用它。我还有一个实际的物理设备,因此我可以在设备管理器中查看它使用的驱动程序。

目标如下

  1. 应用程序将自己注册为 USB 设备,以类似于虚拟克隆驱动器模仿 DVD 播放器的方式模仿 Microsoft Zune。
  2. 应用程序被 zune 客户端识别为有效的 Microsoft zune。
  3. Zune 软件像处理硬件设备一样处理应用程序(同步等)

最佳答案

我刚找到一个叫做 Device Simulation Framework 的东西,这可能正是您所需要的。不过,仍然需要对 USB 的工作原理进行大量研究才能完成您的解决方案。并且可能仍然通常使用 C 或 C++ 完成。

Zune 使用称为 MTPZ 的 MTP 协议(protocol)的修改版本,但我发现此示例使用设备模拟框架来模拟常规 MTP 设备。它叫做The MTP Device Simulator .我不知道源代码是否可用。

关于c# - 通过 USB 连接模拟设备,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5836142/

相关文章:

c# - 按两个属性就地排序列表

c++ - gnu 使。仅重新编译未更改的文件

c# - 您能否将 'It' 匹配器对象存储为变量,而不是将其内联定义? (起订量)

Java Mockito 使用真实方法而不是使用模拟方法

c# - 级联集空 Entity Framework

c# - WPF 绑定(bind)因 INotifyPropertyChanged.PropertyChanged 的​​自定义添加和删除访问器而失败

c# - 从 Sync 方法调用 Async 方法的最佳做法是什么?

c++ - 配置:错误:找不到MySQL包含目录

c++ - 从另一个线程发出信号是否安全?

.net - 模拟框架的新手