必威体育Betway必威体育官网
当前位置:首页 > IT技术

内存映像文件

时间:2019-10-18 23:12:10来源:IT技术作者:seo实验室小编阅读:74次「手机版」
 

映像文件

象使用虚拟内存一样,使用内存映像文件同样需要经过保留和提交两个过程,首先在进

程内存空间保留一块区域,然后提交物理存储给这段区域。不同的是物理存储来自于磁

盘上的文件,而不是系统的分页文件。也即将磁盘上指定的数据文件作为虚拟内存,这

个实现过程被称为文件映像,可以将文件全部或部分映像到进程的地址空间中。文件映

像过以后,可以把文件映像的部分当作已全部被载入内存一样的去访问它,这时又称它

为内存映像文件。

内存映像文件使用步骤

要使用内存映像文件,可以按以下步骤:

(1) 调用windows API 函数CreateFile()创建或是打开一个文件,得到一个标识该文

件(内核对象)的句柄,它确定了哪一个磁盘文件将要作为内存映像文件。

(2) 将(1)中得到的文件对象句柄作为第一个参数调用Windows API 函数CreateFileM

APPing()创建一个文件映像对象。通知系统该文件的大小及对该文件的访问方式,同

时也得到一个标识该文件映像对象的句柄。

(3) 将(2)中得到的文件映像对象句柄作为第一个参数调用Windows API 函数MapView

OfFile()通知系统映像文件全部或部分内容到进程的某一段地址空间,并将此段空间

首地址通过该函数返回。这一步也就是使用虚拟内存的保留和提交过程,此后就可以利

用此首地址实现对文件内容的读写了。

也可以不做第一步,直接从第二步开始,但这时要用INvalid_handle_VALUE为参数作为

标识文件对象的句柄,这时系统以其分页文件作为内存映像文件而不用指定磁盘上的哪

一个磁盘文件。当你使用完内存映像文件后,需要做以下几步清除动作。

(1) 调用Windows API 函数UnmapViewOfFile(),通知系统释放文件映像对象在进程地

址空间中占用的区域。

(2) 调用Windows API 函数CloseHandle(),分别关闭文件映像对象和文件对象。

相关阅读

直接内存溢出

JVM虚拟机是运行在操作系统上的进程,操作系统分配给JVM的内存在启动是有限的,不可能把全部内存都分配给JVM,Java NIO又用到了直接内

解决应用程序错误,内存不能为“read”或“written”

内存不能为“read”或“written”的解决方案 有些人运行飚车程序的时候会弹出该内存不能为“read”的错误提示。希望以下文章能

告别win10图片查看器内存占用过高,使用windows原来的

win10 的问题, 现在默认的照片查看方式是照片应用, 但是一个app 你这是要逆天呀,占用这么多??还好我的是16g 但是我的16g 也刚不

Windows10设置动态视频桌面(占少量内存)

制作动态视频桌面需要用到两个工具: FastStone Capture : 国外官网  国内非官方下载 FastStone Capture : 激活码参考文章 desks

三星回应中国调查,曾被指操控内存价格

A5创业网(公众号:iadmin5)6月4日消息,中国反垄断机构于5月31日派出了多个工作小组,分别对三星、海力士、美光三家公司位于北京、上海、

分享到:

栏目导航

推荐阅读

热门阅读