关于文件映射

【勇芳软件工作室】汉化HomePreviousNext

【文件映射】是文件内容与进程的虚拟地址空间的一部分的关联。操作系统创建一个【文件映射对象】以维护此关联。A 【文件视图】是进程用于访问文件内容的虚拟地址空间的一部分。使用指针读取和写入文件视图的过程,就像动态分配的内存一样。进程也可以使用虚拟内存函数VirtualProtect操作文件视图。

Microsoft Win32应用程序编程接口(API)中的文件映射功能允许进程创建文件映射对象和文件视图,以便轻松访问和共享数据。下图显示了磁盘上的文件,文件映射对象和文件视图之间的关系。

磁盘上的文件可以是要映射到内存的任何文件,也可以是系统页面文件。

文件映射对象可以由文件的全部或部分组成。它由磁盘上的文件支持。这意味着当系统切换文件映射对象的页面时,对文件映射对象所做的任何更改都将写入文件。当文件映射对象的页面被交换回来时,它们将从文件中恢复。

文件视图可以由文件映射对象的全部或部分组成。一个进程通过文件视图来操纵文件。进程可以为文件映射对象创建多个视图。

Windows NT:每个进程创建的文件视图驻留在该进程的虚拟地址空间中。

Windows 95:所有文件视图都驻留在共享地址空间中。在每个进程的虚拟地址空间中共享地址空间的范围在2到3 GB之间。它包含16位堆和共享系统DLL,以及文件视图。

当多个进程使用相同的文件映射对象为本地文件创建视图时,数据是一致的。也就是说,视图包含磁盘上文件的相同副本。如果要在多个进程之间共享内存,该文件不能驻留在远程计算机上。