首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何强制windows FAT32驱动重新加载FAT表?

如何强制windows FAT32驱动重新加载FAT表?
EN

Stack Overflow用户
提问于 2011-07-06 12:08:34
回答 3查看 852关注 0票数 2

我正在实施自定义windows磁盘驱动程序,需要FAT32 windows驱动程序重新加载它的FAT表,1和2,这是下面的数据扇区。如何做到这一点?

我需要更快的方法而不卸载驱动器。我之所以这样做,是因为磁盘是内存虚拟磁盘,数据是在访问扇区的过程中从网络中获取的。我正在动态地写目录数据,它可以工作,但不是为了文件-因为在驱动程序获取FAT的时候-集群是免费的,所以文件不工作。我对fastfat.sys进行了讨论,发现了一些要点...至少我找到了设备ioctl代码,可能会重新加载fat表,如果我成功了,我会在这里发布。

EN

回答 3

Stack Overflow用户

发布于 2011-07-06 13:45:22

强制卸载卷并重新挂载它,或者伪造设备删除。

另外,你为什么要这样做呢?如果您试图与操作系统同时写入文件系统,那么这几乎肯定是不安全的。

票数 2
EN

Stack Overflow用户

发布于 2011-07-06 13:53:31

在对FAT进行任何直接更改之前,您应该(必须,真的)对驱动器执行卸载,然后再次挂载以加载这些更改。否则,操作系统可能会覆盖您使用表的(旧)内存中副本所做的脱机更改,从而可能会损坏您的文件系统,使其无法修复。

票数 2
EN

Stack Overflow用户

发布于 2011-07-06 14:16:09

您可以从使用参数FSCTL_LOCK_VOLUME调用DeviceIoControl开始。如果失败,那么您可以确定您最好不要自己修改FAT,因为分区上的其他句柄是打开的。

下一个问题是当FSCTL_LOCK_VOLUME成功时该怎么做。两个人说要卸载卷,但这还不够。你必须让卷离线,IOCTL_VOLUME_OFFLINE。但当我尝试的时候,这仍然是不够的。Windows仍然在某个地方缓冲了一些东西。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6591435

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档