1. createFile
2. 创建内存映射文件
HANDLE CreateFileMapping(
HANDLE hFile, // handle to file
LPSECURITY_ATTRIBUTES lpAttributes, // security
DWORD flProtect, // protection
DWORD dwMaximumSizeHigh, // high-order DWORD of size
DWORD dwMaximumSizeLow, // low-order DWORD of size
LPCTSTR lpName // object name
);
LPVOID MapViewOfFile(
HANDLE hFileMappingObject, // handle to file-mapping object
DWORD dwDesiredAccess, // access mode
DWORD dwFileOffsetHigh, // high-order DWORD of offset
DWORD dwFileOffsetLow, // low-order DWORD of offset
SIZE_T dwNumberOfBytesToMap // number of bytes to map);
dwFileOffsetHigh + dwFileOffsetLow 之和须得是64K的整数倍.
UnMapViewofFile(
);
closehandle 内存映射
closehandle 关闭文件
/ 磁盘中创建一个文件
HANDLE hFile = CreateFile(L"c:/map.dat", GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
// 在内核中创建一个内存映射文件结构,同时将硬盘文件扩充至1M
HANDLE hMap = CreateFileMapping(hFile, NULL, PAGE_READWRITE, 0, 1024 * 1024, L"ysd");
// 将硬盘文件和本进程的共享端的地址空间建立映射关系
char * pszText = (char*)MapViewOfFile(hMap, FILE_MAP_ALL_ACCESS, 0, 0, 0);
strcpy(pszText, "HELLO map");
printf("%s\n",pszText);
// 将硬盘文件和本进程的共享段的地址空间断开映射关系
UnmapViewOfFile(pszText);
//删除内存映射文件这个内核结构
CloseHandle(hMap);
CloseHandle(hFile);
-------------------------------
OpenFileMapping()
mapViewOfFile()
printf();
UnMapViewofFile();
closehandle();