我有一台设备和此设备的驱动程序。我想做的是构建一个模拟USB设备与第三方应用程序通信的应用程序。
更具体地说,我正在尝试构建一个可以模拟模仿Microsoft Zune的USB设备的应用程序。我想这样做,所以我的应用程序可以注册为zune设备,然后与客户端进行通信。我已经在我的应用程序中添加了几个DLL,以便尝试确定告诉软件连接设备是合法的zune的调用,但到目前为止我没有太多运气。
我是这类开发的新手 - 模仿硬件设备,而且我在导入用C / C ++编写的dll方面不是很有经验。我正在使用Visual Studio 2010(.net 4.0)来开发我的应用程序,我很感激任何人都可以提供给我模仿硬件的帮助。我有设备驱动程序,Visual Studio拒绝直接引用。我还有一个实际的物理设备,所以我可以看到它在设备管理器中使用的驱动程序。
目标如下
答案 0 :(得分:3)
我刚发现了一个名为Device Simulation Framework的东西,这可能就是你所需要的。但是,仍然需要对USB如何完成您的解决方案进行大量研究。可能仍然通常使用C或C ++完成。
Zune使用名为MTPZ的MTP协议的修改版本,但我发现此示例使用设备仿真框架来模拟常规MTP设备。它被称为The MTP Device Simulator。我无法判断源代码是否可用。
答案 1 :(得分:2)
你能用你自己的DLL替换zune客户端软件使用的DLL吗?在这种情况下,您可以使用DLL包装原始DLL并拦截操作。
更新:要查找DLL中函数的签名,请查看Dependency Walker工具,该工具将列出导出的函数(以及许多其他信息)。我猜你会想用C编写你的替换DLL。
否则,您必须编写使用正确端点注册USB设备的驱动程序。我不确定如何在Windows上执行此操作 - 我只在固件端进行USB编码,而不是在驱动程序端。您应该可以使用任何教程来创建Windows USB驱动程序,例如Getting Started with USB Driver Development
Zune细节信息也可能有用。也许这篇博文及其续集可以提供帮助:Inside the Zune/USB Protocol: Part 1