3

我会在系统关闭或服务关闭之前在文件/内存中写一些东西。在下次系统重新启动时,是否可以在文件系统加载之前访问磁盘上的相同文件或相同内存?实际要求是这样的,我们有一个位于卷级驱动程序和文件系统驱动程序之间的驱动程序......在驱动程序代码的那部分,我想访问一些内存或文件。

谢谢和问候,
卡尔文

4

2 回答 2

2

如果它不是太大的话,这里的逻辑是把它读/写到注册表中。您是否有不想使用注册表的原因?

如果您需要访问大数据并且正在编写卷或设备过滤器并且不能依赖内核中的 ZwOpen/Read/Write/Close 函数,则一种方法是在用户模式下创建文件,获取其设备名称和集群链并将它们存储在注册表中。下次启动时,您可以从注册表中获取设备和集群,并对它们进行直接 I/O。

于 2009-07-31T07:52:38.330 回答
0

由于您想在文件系统加载之前访问它,我的第一个想法是在文件系统之外的硬盘驱动器上分配和使用一块存储空间。您可以在驱动器上创建一个隐藏的迷你分区,并使用低级 I/O 命令来读取和写入您的数据。

这是嵌入式系统领域的一项常见任务,我们通常通过在系统中添加某种非易失性存储设备(闪存、电池支持的 DRAM 等)并对该设备进行读写来实现它。由于您可能无法像嵌入式开发人员那样对可用硬件进行相同级别的控制,因此我能想到的最接近的模拟方法是在物理磁盘上保留一块空间,您可以从中读取而无需安装为一个文件系统。一个专用的迷你分区可能效果最好,因为如果你知道它的大小,你可以把它当作一个大的原始访问缓冲区,并且可以避免文件名、文件系统等的麻烦。

于 2009-07-31T20:56:17.880 回答