如何创建一个我可以处理对该文件的所有访问的文件。我的程序可以将请求的数据发送到从该文件读取并接收对该文件的所有写入的所有程序。
4 回答
在我看来,您需要使用 CreateFileMapping / MapViewOfFile 创建一个共享内存区域 - 您会在网络和书中找到许多示例。
这个问题很模糊。
如果其他应用程序是您的,那么您可以选择其他一些进程间通信 (IPC) 机制而不是使用文件。或者您可以使用临时文件(使用特殊 TEMPORARY 属性创建的文件)。
如果其他应用程序不是您的并且希望该文件存在于磁盘上,那么您需要创建此文件,或者创建一个虚拟文件系统和一个磁盘或现有文件系统上的虚拟文件。要创建虚拟文件系统,您需要内核模式驱动程序(文件系统驱动程序)。要在现有磁盘上创建虚拟文件,您需要内核模式文件系统过滤器驱动程序。
内核模式驱动程序的创建既棘手又耗时,并且需要对 Windows 内部结构有很好的了解。作为选项之一,您可以使用我们的回调文件系统 (CBFS) 产品,它允许您在用户模式下创建虚拟文件系统(我们提供驱动程序)。但是 CBFS 对您的任务来说可能是一种过度杀伤力。
因此,您更好的选择是审查您的任务和要求,并找到另一种方式向其他应用程序提供数据。
NTFS 流:
NTFS Stream可能是一个替代选项。
NTFS 文件系统为应用程序提供了创建 替代信息数据流的能力。默认情况下,所有数据都存储在文件的主要未命名数据流中,但是通过使用语法“文件:流”,您可以读取和写入备用...
Stream 上的其他相关资源:
- 文件流(Msdn 页面)
- 此处提供了使用 Streams 的 c++ 代码示例。
- NTFS 流(在 AuditMyPC.com 上的条目)
- NTFS 备用流:内容、时间和方法