Filesystems Wince 6.0文件系统损坏-目录似乎正在递归

Filesystems Wince 6.0文件系统损坏-目录似乎正在递归,filesystems,windows-ce,fat,Filesystems,Windows Ce,Fat,我们有一个成熟的Wince 6.0 R2定制设备,能够通过WiFi下载文件并将其存储在NAND flash FAT文件系统分区中。这已经在全球15000多台设备上运行了一年多了,但最近在一些新软件和操作系统版本的测试系统上,我们看到一些文件系统损坏,其中一个特定目录似乎有一个返回顶级\Flash内容的递归链接。特别是,我们有一个\Flash\Manifest目录,其中包括一个名为GCMaps的子目录。通常情况下,它包含许多映射图像,但当发生损坏时,它还包括明显递归循环中的所有高级\Flash文件

我们有一个成熟的Wince 6.0 R2定制设备,能够通过WiFi下载文件并将其存储在NAND flash FAT文件系统分区中。这已经在全球15000多台设备上运行了一年多了,但最近在一些新软件和操作系统版本的测试系统上,我们看到一些文件系统损坏,其中一个特定目录似乎有一个返回顶级\Flash内容的递归链接。特别是,我们有一个\Flash\Manifest目录,其中包括一个名为GCMaps的子目录。通常情况下,它包含许多映射图像,但当发生损坏时,它还包括明显递归循环中的所有高级\Flash文件和子目录,例如。\Flash\Manifest\GCMaps\program.exe和\Flash\Manifest\GCMaps\Manifest\GCMaps\Manifest

问题总是发生在同一个目录上,并且它发生在我们测试机架上的多个设备上,尽管我们的许多测试设备完全不受影响。我可以通过重新格式化文件系统分区或擦除整个闪存设备、重新分区、重新刷新操作系统以及重新创建文件系统来临时修复受影响的设备。但是,受影响的设备在几天内继续发生损坏

最近的测试表明,在多次更改清单文件后,文件系统仍然保持完整,但是我们会在午夜自动重新启动,在启动时,一些受影响的设备会出现问题

奇怪的是,我们最近没有更改任何清单下载或集成逻辑,也没有更改任何与GCMaps有关的逻辑。我最近做的一个主要改变是删除Windows外壳,并在“Kiosk模式”下运行我们的设备,我们的应用程序是唯一的UI

以前有人在CE上遇到过这种递归目录损坏吗?如果有,您找到解决方案了吗?是否有任何原因表明移除外壳可能导致这种情况?任何建议或信息将不胜感激

谢谢,
如果在重新启动之前不刷新文件系统缓冲区(或者强制关闭设备),Rich JonesFAT很容易损坏。这适用于PC和其他使用FAT的设备。因此,可能是重新启动导致了问题。删除shell可以是相关的,也可以是不相关的-shell可能会定期执行一些刷新,这样就避免了以前的问题

谢谢你的意见!我忽略了提到最后一次写入和重新启动之间的时间是很多小时,所以我不会认为文件系统缓冲区仍然没有被刷新,除非shell像您之前指出的那样负责这一点。我当然会添加一个强制刷新,尽管我也看到了在HKEY_LOCAL_MACHINE\System\StorageManager\FATFS中将“EnableCache”设置为“0”的建议,以完全抑制缓存。有人知道这是否是个好主意吗?@rjones54关于禁用缓存-您需要衡量性能,因为答案取决于您的使用场景。我怀疑这是否是刷新问题,因为我没有丢失文件,而且文件本身也没有损坏。取而代之的是,我得到了一个目录结构的循环引用,它总是出现在一个特定的子目录下。脂肪是否可能在阅读过程中受损???这就是发生损坏时我们对该特定目录中的文件所做的全部操作。如果您想在问题中添加内容,请编辑它,而不是发表评论。