Windows中是否有一个选项来创建RAM中包含字节的文件?

Windows中是否有一个选项来创建RAM中包含字节的文件?,windows,winapi,filesystems,Windows,Winapi,Filesystems,有一个程序(程序a),它使用某个文件夹中的某个特定文件。通常,该文件位于硬盘上 我需要写一个程序(程序B),可以创建这样的文件,但这个文件应该在RAM中,而不是硬盘上的物理。因此,如果您拔下硬盘,您将无法找到该文件 我也没有访问程序代码的权限。但是我想把这个文件解释成一个普通的文件 在Windows中是否可以执行类似操作?要使文件只存在于内存中,唯一的方法是使用。您可以找到免费的RAM驱动器,可能还有一些开源实现,但它们确实需要内核驱动程序。NTFS装载点将允许您将此驱动器作为子文件夹装载到驱动

有一个程序(程序a),它使用某个文件夹中的某个特定文件。通常,该文件位于硬盘上

我需要写一个程序(程序B),可以创建这样的文件,但这个文件应该在RAM中,而不是硬盘上的物理。因此,如果您拔下硬盘,您将无法找到该文件

我也没有访问程序代码的权限。但是我想把这个文件解释成一个普通的文件


在Windows中是否可以执行类似操作?

要使文件只存在于内存中,唯一的方法是使用。您可以找到免费的RAM驱动器,可能还有一些开源实现,但它们确实需要内核驱动程序。NTFS装载点将允许您将此驱动器作为子文件夹装载到驱动器C:上(如果需要)


从编程的角度来看,程序B唯一能做的就是在程序a打开文件后设置delete on close标志。根据A使用该文件的方式,您可能只需要删除该文件,否则,B将不得不调用文件句柄,但这仅在程序A打开文件时,共享标志设置为允许删除时才起作用。我从来没有测试过这个,所以我不能100%肯定它会在断电的情况下工作。NTFS确实有日志记录,可以确保文件系统状态正确,但我不确定它是否适用于删除标志。

@dewaffled我是否能够使用共享内存创建一个文件(路径类似于“C:/Temp/file.txt”),而不改变程序行为?情况是,我不能修改程序A,并让它使用一些机制,如MemoryMappedFile(实际上,它是模糊的Java)。但我可以在程序B中实现所有功能。从用户代码到强制在物理内存中分配内存几乎是不可能的。这真的是你想要的吗?或者你把“RAM”和(虚拟)内存弄错了?@ken:有多少程序需要重写才能利用符号链接?@KonstantinRybchynski RAM通常是易失性内存,如果断电,存储的信息将丢失。你是指ROM吗?我想知道您正在开发什么样的程序,以及特定文件的用途是什么?@RemyLebeau我认为如果应用程序使用
CreateFile
和朋友来处理文件,那么这种方法不起作用。很少有应用程序在读取文件时使用IShellFolder并请求IStream。