CreateFileMapping函数用于创建一个文件映射对象,它可以将一个文件或者一个其他类型的对象映射到进程的虚拟地址空间中。其函数原型如下:
HANDLE CreateFileMapping( HANDLE hFile, LPSECURITY_ATTRIBUTES lpAttributes, DWORD flProtect, DWORD dwMaximumSizeHigh, DWORD dwMaximumSizeLow, LPCTSTR lpName );
参数说明:
hFile
:文件句柄,指定要映射到内存的文件。如果此参数为INVALID_HANDLE_VALUE,则表示映射的是一个匿名对象。lpAttributes
:指向SECURITY_ATTRIBUTES结构的指针,用于指定对象的安全性。如果此参数为NULL,则表示对象默认为非继承的。flProtect
:保护特性,指定文件映射对象的访问权限和保护级别。常见的取值有:
PAGE_READONLY
:只读权限PAGE_READWRITE
:可读可写权限PAGE_WRITECOPY
:可写拷贝权限dwMaximumSizeHigh
和dwMaximumSizeLow
:指定文件映射对象的最大大小。可以使用GetFileSize
函数获取文件的大小,或者设置为0表示映射整个文件。lpName
:文件映射对象的名称。如果此参数为NULL,则表示创建一个匿名对象。返回值为文件映射对象的句柄,如果创建失败则返回NULL。
创建文件映射对象后,可以使用MapViewOfFile
函数将映射对象映射到进程的虚拟地址空间中,以便进行读取或写入操作。使用UnmapViewOfFile
函数可以取消映射。最后,使用CloseHandle
函数关闭文件映射对象句柄。