/************************************************
作者:
版本:
函数名:CreateFileMapping
函数作用:创建一个内存映射文件的内核对象
输入参数:HANDLE hFile, -1 是创建一个共享内存,否则创建打开的文件的内存映射文件
LPSECURITY_ATTRIBUTES lpFileMappingAttributes, 是否可以继承
DWORD flProtect, 映射文件的保护类型 PAGE_READ PAGE_READWRITE
DWORD dwMaximumSizeHigh, 映射文件的长度
LPCWSTR lpName 映射文件的名称
输出参数:
返回值 成功返回内存映射文件的句柄,否则返回NULL
*************************************************/
HANDLE CreateFileMapping( __in HANDLE hFile,
__in_opt LPSECURITY_ATTRIBUTES lpFileMappingAttributes,
__in DWORD flProtect,
__in DWORD dwMaximumSizeHigh,
__in DWORD dwMaximumSizeLow,
__in_opt LPCWSTR lpName )
/************************************************
作者:
版本:
函数名:OpenFileMapping
函数作用:打开已经创建的的对象
输入参数:DWORD dwDesiredAccess指定的保护类型 FILE_MAP_READ FILE_MAP_WRITE
BOOL bInheritHandle 返回的句柄是否可以继承
LPCSTR lpName 映射名
输出参数:
返回值 成功返回内存映射文件的句柄,否则返回NULL
*************************************************/
HANDLE OpenFileMapping( __in DWORD dwDesiredAccess, __in BOOL bInheritHandle, __in LPCSTR lpName )
/************************************************
作者:
版本:
函数名:MapViewOfFile
函数作用:映射文件映射对象的部分或者全部一部分到进程的地址空间
输入参数:HANDLE hFileMappingObject createfilemap或者openfilemap返回的句柄
DWORD dwDesiredAccess, 制定保护类型FILE_MAP_WRITE FILE_MAP_READ
DWORD dwFileOffsetHigh 从文件的哪个位置映射
SIZE_T dwNumberOfBytesToMap 要映射的文件字节数,如果从0开始就是整个文件
输出参数:
返回值 返回映射视图的地址,NULL表示失败
*************************************************/
LPVOID WINAPI MapViewOfFile( __in HANDLE hFileMappingObject,
__in DWORD dwDesiredAccess,
__in DWORD dwFileOffsetHigh,
__in DWORD dwFileOffsetLow,
__in SIZE_T dwNumberOfBytesToMap )
/************************************************
作者:
版本:
函数名:MapViewOfFile
函数作用:关闭内存映射
输入参数:LPCVOID lpBaseAddress 映射返回的内存地址
输出参数:
返回值 返回映射视图的地址,NULL表示失败
*************************************************/
BOOL UnmapViewOfFile( __in LPCVOID lpBaseAddress )
/************************************************
作者:
版本:
函数名:MapViewOfFile
函数作用:关闭内存映射
输入参数:LPCVOID lpBaseAddress 开始的地址
SIZE_T dwNumberOfBytesToFlush 数据块大小
输出参数:
返回值 返回映射视图的地址,NULL表示失败
*************************************************/
BOOL FlushViewOfFile( __in LPCVOID lpBaseAddress, __in SIZE_T dwNumberOfBytesToFlush )