如何在窗口中按偏移量和大小映射 RAM 中的文件
how to map a file in RAM by offset and size in windows
我有一个C++程序查找来删除硬盘驱动器上的文件。因此,程序从分区的开头开始读取,每当它看到有效的签名时,它就会读取该签名并根据文件类型找到文件大小。
然后,它将文件的起始大小和偏移量保存到数据库中。现在我想要的是当这个过程完成后将文件交给一些分析器!
我现在正在做的是将文件恢复到硬中,然后将它们的地址提供给分析器。但它太长了。
我想通过虚拟文件系统将这些文件加载到 RAM 中,它获得文件地址偏移量和文件大小,然后给出一个虚拟地址,分析器可以通过fopen()
读取该文件并且速度更快,但我不想在分区上写入文件。
事实上,这些文件已经存在于分区中,但不存在于文件系统表中。
这种方式有什么解决方案吗?
你必须知道一个简单的技巧。如您所知道的那样打电话CreateFile
,但FILE_ATTRIBUTE_TEMPORARY
传递。这是对Windows将文件保存在RAM中的强烈提示,因为您打算在使用后立即将其删除。
您也可以通过FILE_FLAG_DELETE_ON_CLOSE
,让自己的事情更轻松。
相关文章:
- 删除一个线程上有数百万个字符串的大型哈希映射会影响另一个线程的性能
- C++映射:具有自定义类的运算符[]不起作用(总是返回0)
- 将函数类成员映射到类本身内部
- 如何在 C# 中映射双 C 结构指针?
- 如何在C++中使用结构生成映射
- 使用std::函数映射对象方法
- 如何加载(或映射)文件部分的最大大小,但适合在Windows上的RAM
- C++映射分割错误(核心转储)
- 内联映射初始化的动态atexit析构函数崩溃
- 使用"std::unordereded_map"映射到"std::list"对象
- 如何从多映射中删除特定的重复项
- 在未初始化映射的情况下,将值插入到映射的映射中
- QT通过C++添加映射QML项目
- 在c++中访问int到类对象的映射时出错
- 在C++中搜索嵌套多映射值
- 错误处理.将系统错误代码映射到泛型
- C++匿名结构作为std::映射值
- 如何从存储在std::映射中的std::集中删除元素
- 如何在窗口中按偏移量和大小映射 RAM 中的文件
- 使用opengl绘制和映射纹理到系统RAM