如何创建虚拟可更改文件?

时间:2012-04-26 08:56:13

标签: delphi

如何创建一个我可以处理对该文件的所有访问权限的文件。我的程序可以将请求的数据发送到从该文件读取的所有程序,并接收对该文件的所有写入。

4 个答案:

答案 0 :(得分:3)

听起来我需要使用CreateFileMapping / MapViewOfFile创建共享内存区域 - 您可以在网络和书籍中找到许多示例。

答案 1 :(得分:2)

问题很模糊。

如果其他应用程序是您的,那么您可以选择其他进程间通信(IPC)机制而不是使用文件。或者您可以使用临时文件(使用特殊TEMPORARY属性创建的文件)。

如果其他应用程序不属于您,并且希望该文件存在于磁盘上,则需要创建此文件,或者在现有文件系统上创建虚拟文件系统和磁盘或虚拟文件。要创建虚拟文件系统,您需要内核模式驱动程序(文件系统驱动程序)。要在现有磁盘上创建虚拟文件,您需要一个内核模式文件系统筛选器驱动程序。

内核模式驱动程序创建起来非常棘手且耗时,并且需要熟悉Windows内部。作为选项之一,您可以使用我们的回调文件系统(CBFS)产品,该产品允许您以用户模式创建虚拟文件系统(我们提供驱动程序)。但是CBFS可能对你的任务来说太过分了。

因此,更好的选择是检查您的任务和要求,并找到另一种方法向其他应用程序提供数据。

答案 2 :(得分:0)

NTFS Stream:

NTFS Stream可能是另一种选择。


引自Windows Sysinternals

  

NTFS文件系统为应用程序提供了创建的能力   备用数据信息流。默认情况下,存储所有数据   在文件的主要未命名数据流中,但使用语法   'file:stream',您可以读取和写入替换 ...


有关Stream的其他相关资源:

答案 3 :(得分:0)