说明 创建一个新的文件映射对象。
HANDLE CreateFileMapping(
HANDLE hFile, // 映射文件的句柄
LPSECURITY_ATTRIBUTES lpFileMappingAttributes,// 安全描述符指针
DWORD flProtect, // 对映射对象的保护
DWORD dwMaximumSizeHigh, // 对象最大长度的高32位
DWORD dwMaximumSizeLow, // 对象最大长度的低32位
LPCTSTR lpName // 文件内存映射对象的名字
);
参数:
hFile:映射文件的句柄,文件的打开模式必须与flProtect参数指定的相一致;如果这个参数值为0xFFFFFFFF,那么必须在dwMaximumSizeHigh和dwMaximumSizeLow参数中指定映射对象的大小。并且将在操作系统虚拟内存页面替换文件中创建文件映射对象,而不是使用磁盘文件,同时必须给出这个映射对象的大小。文件映射对象通过副本,遗传或名字来共享。
lpFileMappingAttributes:安全描述符指针,决定返回句柄是否能被子进程继承,如果是NULL,那么子进程不能继承。WinNt中,如果是NULL,那么文件映射对象得到一个默认的安全描述符。
flProtect:为得到的文件试图指定保护模式,可以被设置为下列值:
PAGE_READONLY :只读属性,并且hFile对应的文件必须以GENERIC_READ形式打开。
PAGE_READWRITE:可读可写属性,并且hFile对应的文件必须以GENERIC_READ 和 GENERIC_WRITE形式打开。
PAGE_WRITECOPY:对可写区域复制后操作,并且hFile对应的文件必须以GENERIC_READ 和 GENERIC_WRITE形式打开。
dwMaximumSizeHigh,dwMaximumSizeLow:如果这两个参数为0,则文件映射对象的最大长度等于hFile指定的文件长度。
lpName: 文件映射对象的名字,如果这个名字已存在,则按照flProtect指定的来处理映射对象。如果此参数为空,则创建一个无名字的文件映射对象。如果此参数 的名字与系统事件的名字相同,则函数执行失败,GetLastError返回 ERROR_INVALID_HANDLE;
返回值:函数调用成功返回文件映射对象的句柄,如果文件映射对象已经存在则返回原有映射对象的句柄,GetLastError返回ERROR_ALREADY_EXISTS。函数执行失败返回Null。