系统相关
首页 > 系统相关> > [笔记]Windows核心编程《十七》内存映射文件

[笔记]Windows核心编程《十七》内存映射文件

作者:互联网

参考

文章目录

前言

内存映射文件 与虚拟内存相似,内存映射文件允许开发人员预定一块地址空间区域并给区域调拨物理存储器。不同之处在于内存映射文件的物理存储器来自磁盘上已有的文件,而不 是来自系统的页交换文件。 一旦把文件映射到地址空间,我们就可以对它进行访问,就好像整个文件都已经在被载入内存一样。

页交换文件,简单讲就是系统用于做虚拟内存的一个磁盘文件
页交换文件相关可参考windows内存体系结构

内存映射主要用于以下三种情况:

一、映射到内存的可执行文件和DLL

CreateProcess调用过程

当一个线程在调用CreateProcess的时候,系统会执行以下步骤:

  1. 系统会先确定CreateProcess所指定的可执行文件所在的位置。如果无法找到该.exe文件,那么系统将不会创建进程,这时CreateProcess会返回FALSE.
  2. 系统创建一个新的进程内核对象。
  3. 系统为新进程创建一个私有地址空间。
  4. 系统预定一块足够大的地址空间来容纳.exe。待预定的地址空间区域的具体位置已经在.exe文件中指定。 默认情况下,.exe文件的基地址是0x00400000。但是,只需在构建应用程序的.exe文件时使用/BASE连接器开关,我们就可以给自己的应用程序指定一个不同的地址。
  5. 系统会对地址空间区域进行标注,表明该区域的后备物理存储器来自磁盘上的.exe文件,而并非来自系统的页交换文件。

二、映射到内存的数据文件

三、使用内存映射文件

四、用内存映射文件来处理大文件

五、内存映射文件和一致性

六、给内存映射文件的指定基地址

七、内存映射文件的实现细节

八、用内存映射文件再进程间共享数据

九、以页交换文件为后背存储器的内存映射文件

十、 稀疏调拨的内存映射文件

标签:文件,exe,映射,Windows,地址,内存,交换文件
来源: https://blog.csdn.net/qq1113673178/article/details/122650969