在windows 下进行内存文件映射的相关函数

1.  CreateFile()函数来创建或打开一个文件内核对象,这个对象标识了磁盘上将要用作内存映射文件的文件


 在用CreateFile()将文件映像在物理存储器的位置通告给操作系统后,只指定了映像文件的路径,映像的长度还没有指定。


2.  通过CreateFileMapping()函数来创建一个文件映射内核对象以告诉系统文件的尺寸以及访问文件的方式。

     在创建了文件映射对象后,还必须为文件数据保留一个地址空间区域,并把文件数据作为映射到该区域的物理存储器进行提交。


3.  MapViewOfFile()函数负责通过系统的管理而将文件映射对象的全部或部分映射到进程地址空间。


4. UnmapViewOfFile()完成从进程的地址空间撤消文件数据的映像。


5. 通过CloseHandle()关闭前面创建的文件映射对象和文件对象。




Windows API 中有关内存映射文件函数接口主要包括以下几个: 1. `CreateFileMapping`:创建一个内存映射文件对象,返回一个内存映射文件的句柄。函数原型如下: ``` HANDLE CreateFileMapping( HANDLE hFile, LPSECURITY_ATTRIBUTES lpAttributes, DWORD flProtect, DWORD dwMaximumSizeHigh, DWORD dwMaximumSizeLow, LPCTSTR lpName ); ``` 其中,`hFile`是文件句柄,`lpAttributes`是安全属性的指针,`flProtect`是内存保护属性,`dwMaximumSizeHigh`和`dwMaximumSizeLow`是内存映射文件的大小,`lpName`是映射文件的名称。 2. `MapViewOfFile`:将一个内存映射文件对象映射到当前进程的地址空间,返回映射视图的起始地址。函数原型如下: ``` LPVOID MapViewOfFile( HANDLE hFileMappingObject, DWORD dwDesiredAccess, DWORD dwFileOffsetHigh, DWORD dwFileOffsetLow, SIZE_T dwNumberOfBytesToMap ); ``` 其中,`hFileMappingObject`是内存映射文件的句柄,`dwDesiredAccess`是映射视图的访问权限,`dwFileOffsetHigh`和`dwFileOffsetLow`是文件偏移量,`dwNumberOfBytesToMap`是映射的字节数。 3. `FlushViewOfFile`:将内存映射文件的指定区域刷新到磁盘上的文件中。函数原型如下: ``` BOOL FlushViewOfFile( LPCVOID lpBaseAddress, SIZE_T dwNumberOfBytesToFlush ); ``` 其中,`lpBaseAddress`是映射视图的起始地址,`dwNumberOfBytesToFlush`是要刷新的字节数。 4. `UnmapViewOfFile`:解除一个内存映射文件视图,并释放相应的资源。函数原型如下: ``` BOOL UnmapViewOfFile( LPCVOID lpBaseAddress ); ``` 其中,`lpBaseAddress`是映射视图的起始地址。 通过这些函数接口,我们可以实现Windows平台下内存映射文件的读写操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值