1

我的智能手机(摩托罗拉 Atrix 4G)中有一个 32GB 的 MicroSD。手机连接到我的 Windows XP (SP3) 笔记本电脑,micro sd 以“大容量存储模式”访问,即它被分配了一个驱动器号,可以从笔记本电脑访问。MicroSD 使用 FAT32 格式化。MicroSD 包含一个虚拟硬盘 (vmdk),包含 12 个扩展区(大小为 2GB)。我的代码将本地硬盘上的重做文件与 microsd 上的 vmdk 扩展区合并。代码循环重做文件中的所有“grain table”条目,如果grain table 条目不为零,它会读取引用的“grain”或连续的grain组(vmware术语中的grain是重做文件中的64k块)从重做文件中,寻找 vmdk 中的相应位置并将颗粒写入该位置。

问题是在这个“提交”操作的中间,MicroSD 断开连接(并不总是在同一时间点)。我收到“无磁盘”错误消息。事件日志记录一个 ID 为 51 的警告 - “在分页操作期间在设备 \Device\Harddisk2\D 上检测到错误”。在此错误之后,microsd 上的文件不再从 Windows 系统“可见”。重新连接设备后,所有文件再次从笔记本电脑可见。

到目前为止,我已经尝试了以下方法:

  1. 尝试了不同的电缆,其中一根短至 13'' -> 没有效果

  2. 通过读卡器将 microsd 卡(三星,10 级 32GB)连接到主机系统 -> 问题没有出现

  3. 尝试了不同的 microsd(Lexar,10 级 32GB)-> 相同的问题

  4. 使用直接连接的读卡器尝试了 Lexar microsd -> 没有出现问题

  5. 尝试了不同的手机(三星 Galaxy S2、摩托罗拉 Razr M)-> 相同的问题

  6. 在运行 Windows 7 的多个系统上运行代码,包括显示 XP 行为的同一系统 -> 未出现问题 (!!!!)

  7. 我有一个相同的第二个 XP 系统 -> 相同的问题

  8. 在将“grain”写入磁盘后,我立即降低了插入 Sleep(500) 的写入操作 -> 问题没有出现

不幸的是,8 不是一个很好的解决方法,因为它减慢了提交操作。

有什么想法吗?

先感谢您

4

0 回答 0