小编Nic*_*ick的帖子

强制窗口刷新磁盘FAT

我的磁盘上有一个单独的分区,格式化为FAT32.当我休眠窗口时,我希望能够加载另一个操作系统,创建/修改该分区上的文件,然后使Windows退出休眠状态,并能够看到我所做的更改.

我知道你要打字的是什么,"好吧,你不应该这样做!" 然后把我链接到一些关于我正在尝试做什么是错误/不可能/打破一切的规范.但是,我确信有一些方法可以解决这个问题.:)

我不需要在Windows中使用FAT32分区,除了读取那里写的文件,然后我就完成了 - 所以不管解决方案是什么,磁盘在一段时间内完全无法访问是可以接受的.不幸的是,我无法使整个物理磁盘脱机,因为它只是安装Windows的同一物理设备的分区 - 只是分区.

这些是我到目前为止尝试过的东西......

  1. 谷歌一下.我得到了至少一个"这永远不会发生"的答案.不能的!:)
  2. 在休眠之前卸载磁盘.从冬眠中出来后装载.这似乎没有效果.Windows仍然认为FAT与以前一样,所以我写入磁盘的任何数据都会丢失,而且我调整大小的文件都已损坏.如果任何文件被缓存,那就更糟了.
  3. 使用DeviceIoControl来调用IOCTL_DISK_UPDATE_PROPERTIES来尝试刷新磁盘(但是分区表没有改变,所以这并没有真正做任何事情).

有没有办法使磁盘/卷读取缓存无效以强制窗口返回磁盘?

我想通过使用libfat直接打开分区和读/写并绕过缓存或者某些东西是矫枉过正的.

windows winapi

2
推荐指数
1
解决办法
3012
查看次数

标签 统计

winapi ×1

windows ×1