Share via


MapViewOfFile2 函式 (memoryapi.h)

將檔案或分頁檔支援的區段檢視對應至指定進程的位址空間。

語法

PVOID MapViewOfFile2(
  [in]           HANDLE  FileMappingHandle,
  [in]           HANDLE  ProcessHandle,
  [in]           ULONG64 Offset,
  [in, optional] PVOID   BaseAddress,
  [in]           SIZE_T  ViewSize,
  [in]           ULONG   AllocationType,
  [in]           ULONG   PageProtection
);

參數

[in] FileMappingHandle

要對應至指定進程的位址空間之區段的 HANDLE

[in] ProcessHandle

將對應區段之進程的 HANDLE 。 控制碼必須具有 PROCESS_VM_OPERATION 存取遮罩。

[in] Offset

區段開頭的位移。 這必須對齊 64k。

[in, optional] BaseAddress

檢視所需的基底位址。 位址會四捨五入至最接近的 64k 界限。 如果此參數為 Null,則系統會挑選基底位址。

[in] ViewSize

要對應的位元組數目。 0 (0 的值,) 會指定整個區段要對應。

[in] AllocationType

配置的類型。 此參數可以是零 (0) 或下列其中一個常數值:

  • MEM_RESERVE - 對應保留的檢視。
  • MEM_LARGE_PAGES - 對應大型頁面檢視。 此旗標指定檢視應該使用 大型頁面支援進行對應。 檢視的大小必須是 GetLargePageMinimum 函式所報告之大型頁面大小的倍數,而且必須使用 [SEC_LARGE_PAGES] 選項建立檔案對應物件。 如果您為 BaseAddress 參數提供非 Null 值,則此值必須是 GetLargePageMinimum的倍數。

[in] PageProtection

所需的頁面保護。

對於使用 SEC_IMAGE 屬性建立的檔案對應物件, PageProtection 參數沒有任何作用,而且應該設定為任何有效的值,例如 PAGE_READONLY

傳回值

如果成功,則會傳回對應檢視的基底位址。 否則,會使用GetLastError傳回Null和擴充錯誤狀態。

備註

此函式會實作為標頭中的內嵌函式,而且無法在任何匯出程式庫或 DLL 中找到。 它與呼叫 MapViewOfFileNuma2 相同,最後一個參數設定為 NUMA_NO_PREFERRED_NODE

需求

   
最低支援的用戶端 Windows 10版本 1703 [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2016 [僅限傳統型應用程式]
目標平台 Windows
標頭 memoryapi.h (包括 Windows.h、Memoryapi.h)
程式庫 onecore.lib
DLL Kernel32.dll

另請參閱

MapViewOfFile

MapViewOfFileNuma2