带有设备文件的FAT32大容量存储模拟器

问题描述

我有一个类似于智能卡的miniSD卡(据我所知,它是一个Java卡),我正在尝试为其编写一个可在Windows和Linux上运行的模拟器。该仿真器将用于软件集成测试。由于某些原因,我想在不使用实际硬件的情况下测试我的客户端。原因之一是实际的硬件将不可逆地更改其状态,并且不允许完全重置。

设备使用fat32文件系统实现大容量存储。它包含special device file,该According to Wikipedia用于通过简单的文件写入/读取操作来控制设备。

我的目标是,启动仿真器后,虚拟(仿真)设备会在Windows资源管理器中显示驱动器号,就像有人会真正插入真实设备一样。

我想知道是否有任何开放的软件项目可以作为我的程序的基础?最大的挑战显然是

  • 提供/开发“虚拟”(USB / SD)大容量存储设备
  • 拦截特殊设备文件上的文件I / O操作。

how to write USB device emulators,设备文件是简化驱动程序开发的常用方法。所以我想知道是否存在用于驱动程序开发人员的现有仿真解决方案。至少我找不到任何东西。

模拟设备文件本身将是重要的第一步。我的第一个想法是使用一个普通文件,并在观察该文件的同时实际读写该文件与客户端进行通信。即客户端写入文件后立即清除文件,并将响应写入文件中。我不知道这是否行得通。一个问题是客户端无法以共享模式打开文件,因此我的模拟器无法同时访问它。

然后我发现QEMU可以模拟大容量存储,但是似乎它仅支持图像文件,并且可能不允许使用设备文件

Microsoft有一些有关USB/IP Project和驱动程序的文档,但它似乎非常复杂,我想知道是否存在可以扩展的现有解决方案:

最后有{{3}},但是我不知道它是否有帮助,因为我仍然需要开发驱动程序,然后回到上面的复杂MS文档。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...