Skip to main content

XMemMapPhysicalPagesScatter

將實體頁面對應至虛擬記憶體。

語法

參數

*VirtualAddressArray   _In_
類型:PVOID
應對應頁面的虛擬位址陣列。此參數不能設定為 NULL。請使用搭配 MEM_RESERVE 和 XMEM_MAPPABLE 的 XMemVirtualAlloc,保留要與 XMemMapPhysicalPagesScatter 搭配使用的記憶體位址範圍。保留的虛擬位址也必須透過 XMemVirtualAlloc 的 MEM_64K_PAGES 選項以 64k 頁面建立。 NumberOfPages   _In_
類型:ULONG_PTR
PageArray 和 VirtualAddressArray 中的項目數。僅支援透過 XMemVirtualAlloc 使用 MEM_64K_PAGES 選項保留的 64k 頁面。 PageArray   _In_reads_opt_(NumberOfPages)
類型:PULONG_PTR
代表要對應之實體頁面的頁框編號 (PFN) 陣列。此參數可以設定為 NULL。如果 PageArray 設定為 NULL,則此函式會執行取消對應作業。如果陣列中的個別項目設定為 NULL,則對應的虛擬位址會被取消對應。

傳回值

類型:BOOL 如果對應成功,則傳回 TRUE;如果對應失敗,則傳回 FALSE。

備註

此函式會將 VirtualAddressArray 和 PageArray 視為長度相同 (如 NumberOfPages 所指定) 的平行陣列。VirtualAddressArray 陣列元素中的每個虛擬位址會根據 PageArray 進行對應或取消對應:
  • 如果 PageArray 中的陣列元素設定為 PFN,則 VirtualAddressArray 中對應陣列元素的虛擬位址會對應至該 PFN。
  • 如果 PageArray 中的陣列元素設定為 NULL,則 VirtualAddressArray 中對應陣列元素的虛擬位址會被取消對應。
  • 如果 PageArray 設定為 NULL,則 VirtualAddressArray 中的每個虛擬位址都會被取消對應。
為獲得最佳效能,同一個 2 MB 視窗 (大小和對齊) 內的虛擬位址應連續且以遞增順序提供。這可讓作業系統伺機預先查看,並判斷是否可以將某些以 CPU 頁面細微度運作的作業延遲到群組結束時再執行。如需將實體頁面對應至虛擬位址的詳細資訊,請參閱使用 Microsoft GDK 遊戲 OS 記憶體管理員。

需求

標頭: xmem.h 程式庫: xmem.lib 支援的平台: XBOX One 系列主機和 XBOX Series 主機

另請參閱

XMemVirtualAlloc
XMem
Last modified on October 6, 2026