MapViewOfFile

MapViewOfFile

MapViewOfFile是計算機函式,功能是將一個檔案映射對象映射到當前應用程式的地址空間。MapViewOfFileEx允許我們指定一個基本地址來進行映射。

VB聲明

Declare Function MapViewOfFile& Lib "kernel32" (ByVal hFileMappingObject As Long, ByVal dwDesiredAccess As Long, ByVal dwFileOffsetHigh As Long, ByVal dwFileOffsetLow As Long, ByVal dwNumberOfBytesToMap As Long)

Declare Function MapViewOfFileEx& Lib "kernel32" (ByVal hFileMappingObject As Long, ByVal dwDesiredAccess As Long, ByVal dwFileOffsetHigh As Long, ByVal dwFileOffsetLow As Long, ByVal dwNumberOfBytesToMap As Long, lpBaseAddress As Any)

VC聲明

LPVOID WINAPI MapViewOfFile(
__in HANDLEhFileMappingObject,
__in DWORDdwDesiredAccess,
__in DWORDdwFileOffsetHigh,
__in DWORDdwFileOffsetLow,
__in SIZE_TdwNumberOfBytesToMap
);

LPVOID WINAPI MapViewOfFileEx(
__in HANDLEhFileMappingObject,
__in DWORDdwDesiredAccess,
__in DWORDdwFileOffsetHigh,
__in DWORDdwFileOffsetLow,
__in SIZE_TdwNumberOfBytesToMap,
__in LPVOIDlpBaseAddress
);

說明

將一個檔案映射對象映射到當前應用程式的地址空間。MapViewOfFileEx允許我們指定一個基本地址來進行映射。

參數詳解

參數1:hFileMappingObject 為CreateFileMapping()返回的檔案映像對象句柄。

參數2:dwDesiredAccess 映射對象的檔案數據的訪問方式,而且同樣要與CreateFileMapping()函式所設定的保護屬性相匹配。 可取以下值:

FILE_MAP_ALL_ACCESS 等價於CreateFileMapping的 FILE_MAP_WRITE|FILE_MAP_READ. 檔案映射對象被創建時必須指定PAGE_READWRITE 選項.

FILE_MAP_COPY 可以讀取和寫入檔案.寫入操作會導致系統為該頁面創建一份副本.在調用CreateFileMapping時必須傳入PAGE_WRITECOPY保護屬性.

FILE_MAP_EXECUTE 可以將檔案中的數據作為代碼來執行.在調用CreateFileMapping時可以傳入PAGE_EXECUTE_READWRITE或PAGE_EXECUTE_READ保護屬性.

FILE_MAP_READ 可以讀取檔案.在調用CreateFileMapping時可以傳入PAGE_READONLY或PAGE_READWRITE保護屬性.

FILE_MAP_WRITE 可以讀取和寫入檔案.在調用CreateFileMapping時必須傳入PAGE_READWRITE保護屬性.

參數3:dwFileOffsetHigh 表示檔案映射起始偏移的高32位.

參數4:dwFileOffsetLow 表示檔案映射起始偏移的低32位.(64KB對齊不是必須的)

參數5:dwNumberOfBytes 指定映射檔案的位元組數.

註解

dwFileOffsetLow和dwFileOffsetHigh必須反映一個偏移距離,它由系統的記憶體分配精度決定。例如,假設系統的記憶體精度是64KB(即最小分配單位是64KB),則這些值必須是64KB的整數倍。大多數應用程式都簡單的用零從檔案的起始處開始映射。lpBaseAddress也必須是記憶體分配精度的整數倍.

返回值

如果成功,則返回映射視圖檔案的開始地址值。

如果失敗,則返回 NULL.可調用GetLastError() 查看錯誤。

相關詞條

熱門詞條

聯絡我們