如何在窗口中按偏移量和大小映射 RAM 中的文件

how to map a file in RAM by offset and size in windows

本文关键字:映射 RAM 文件 偏移量 窗口      更新时间:2023-10-16

我有一个C++程序查找来删除硬盘驱动器上的文件。因此,程序从分区的开头开始读取,每当它看到有效的签名时,它就会读取该签名并根据文件类型找到文件大小。

然后,它将文件的起始大小和偏移量保存到数据库中。现在我想要的是当这个过程完成后将文件交给一些分析器!

我现在正在做的是将文件恢复到硬中,然后将它们的地址提供给分析器。但它太长了。

我想通过虚拟文件系统将这些文件加载到 RAM 中,它获得文件地址偏移量和文件大小,然后给出一个虚拟地址,分析器可以通过fopen()读取该文件并且速度更快,但我不想在分区上写入文件。

事实上,这些文件已经存在于分区中,但不存在于文件系统表中。

这种方式有什么解决方案吗?

你必须知道一个简单的技巧。如您所知道的那样打电话CreateFile,但FILE_ATTRIBUTE_TEMPORARY传递。这是对Windows将文件保存在RAM中的强烈提示,因为您打算在使用后立即将其删除。

您也可以通过FILE_FLAG_DELETE_ON_CLOSE,让自己的事情更轻松。