Section Object

来源:互联网 发布:海文考研 知乎 编辑:程序博客网 时间:2024/06/11 02:18


Section Object

    一个 section object 代表了一个内存段, section object 可以在不同的进程之间共享它所代表的内存, 进程也可以使用 section object 把文件映射到内存中。 


section 有两种:

  1. File-backed section . 用磁盘文件填充。 其实就是文件的内存映像,  section 的内容可以写入硬盘。 对seciton 内存的操作对于到相关文件的操作,如果一个进程映射文件为read only,那么文件从硬盘读取到内存,对用户是透明的。 如果文件是以可以读写的方式映射到内存中,那么对内存的操作会同样透明
    的对应到文件上。
  2. Page-File-backed section. 用 paging file 填充, section 的内容不可以写入硬盘, 在section 上做的任何修改,在使用完之后,都会自动的丢弃。


  • 使用 ZwCreateSection 来创建 section ,其中的参数 FileHandle 是表示填充的文件。
  • 使用 ZwOpenSection 来打开一个已经存在的 section 。 通过section 的名字来找到存在的section object。
  • ZwMapViewOfSection 映射 section object 对应的文件到内存
  • ZwUnmapViewOfSection 从内存中卸载映射的 section object 
  • ZwClose 关闭 section 句柄


0 0