CreateFileMapping函數(shù)用于創(chuàng)建一個文件映射對象,它可以將一個文件或者一個其他類型的對象映射到進程的虛擬地址空間中。其函數(shù)原型如下:
HANDLE CreateFileMapping( HANDLE hFile, LPSECURITY_ATTRIBUTES lpAttributes, DWORD flProtect, DWORD dwMaximumSizeHigh, DWORD dwMaximumSizeLow, LPCTSTR lpName );
參數(shù)說明:
hFile
:文件句柄,指定要映射到內存的文件。如果此參數(shù)為INVALID_HANDLE_VALUE,則表示映射的是一個匿名對象。lpAttributes
:指向SECURITY_ATTRIBUTES結構的指針,用于指定對象的安全性。如果此參數(shù)為NULL,則表示對象默認為非繼承的。flProtect
:保護特性,指定文件映射對象的訪問權限和保護級別。常見的取值有:
PAGE_READONLY
:只讀權限PAGE_READWRITE
:可讀可寫權限PAGE_WRITECOPY
:可寫拷貝權限dwMaximumSizeHigh
和dwMaximumSizeLow
:指定文件映射對象的最大大小??梢允褂?code>GetFileSize函數(shù)獲取文件的大小,或者設置為0表示映射整個文件。lpName
:文件映射對象的名稱。如果此參數(shù)為NULL,則表示創(chuàng)建一個匿名對象。返回值為文件映射對象的句柄,如果創(chuàng)建失敗則返回NULL。
創(chuàng)建文件映射對象后,可以使用MapViewOfFile
函數(shù)將映射對象映射到進程的虛擬地址空間中,以便進行讀取或寫入操作。使用UnmapViewOfFile
函數(shù)可以取消映射。最后,使用CloseHandle
函數(shù)關閉文件映射對象句柄。