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
函數關閉文件映射對象句柄。