Windows 7 Embedded - 以编程方式禁用磁盘缓存:

Posted

技术标签:

【中文标题】Windows 7 Embedded - 以编程方式禁用磁盘缓存:【英文标题】:Windows 7 Embedded - Disable Disk Caching Programmatically: 【发布时间】:2020-08-02 08:49:08 【问题描述】:

前言:

我们使用Windows-7-Embedded 图像制作我们软件的客户端副本。

流程非常标准:

    使用空白硬盘。 在硬盘上恢复内部Windows-7-Embedded 映像。 在顶部安装其他软件。 硬盘准备就绪!

问题:

有时,可能由于系统崩溃,图像内部已经配置了一些配置 - reset.

我目前的问题是磁盘上的“禁用写入缓存”选项。 在图像中,该选项是关闭。 有时,它只是重置并开启

我的问题:

如何以编程方式禁用磁盘写入缓存属性?

设计限制:

可以在启动时运行 .exe。该系统主要是 c++,因此这将是基于代码的解决方案的最佳语言。 可以运行 .bat 文件。 可以运行 .vbs 文件。不确定我们当前的基础架构与哪个版本兼容。

图像(内部图像 -> 崩溃后):

说明:

做了我的研究。整体上在 SO 或 SE 中没有找到与 Windows 写入缓存选项相关的任何内容。确实找到了一堆 linux 相关的问题。 目前,系统崩溃是设计使然。这是显而易见的根本原因,但由于设计限制和预算问题无法解决。

【问题讨论】:

【参考方案1】:

您可以尝试使用注册表设置EnableCache。它适用于 FAT 文件系统,将其设置为 0 理论上将禁用磁盘缓存。虽然我没有测试过。

查看: HKEY_LOCAL_MACHINE\SYSTEM\StorageManager\FATFSHKEY_LOCAL_MACHINE\SYSTEM\StorageManager\EXFAT

【讨论】:

以上是关于Windows 7 Embedded - 以编程方式禁用磁盘缓存:的主要内容,如果未能解决你的问题,请参考以下文章

为 Windows Embedded Compact 7 编译 boost 库

如何定制Windows Embedded Compact 7 shell详解

windows embedded standard是啥系统

Windows Embedded Standard 7 找不到我的 .dll

什么是 Windows Embedded Standard 7

如何将 MFC 应用程序移植到 Windows Embedded Compact 7?