XMemAllocatePhysicalPages
為指定的主體處理序配置連續的實體頁面。語法
參數
XMemFlags _In_類型:ULONGLONG 指定已配置頁面的需求。
在 Anaconda 裝置和模擬 Anaconda 的 Dante 裝置上,使用進階遊戲記憶體模式時,也可以套用下列參數。在所有其他情況下,這些參數都會被忽略。
NumberOfPages _Inout_
類型:PULONG_PTR 變數的指標,該變數包含要配置的 64KB 頁面數目。完成時,會傳回_實際_配置的 64 KB 頁面數目。 PageArray _Out_writes_to_(*NumberOfPages,*NumberOfPages)
類型:PULONG_PTR 用來儲存已配置之 64KB 頁碼的使用者記憶體指標。用來儲存已配置記憶體之頁框編號的陣列指標。 所配置之陣列的大小至少應為 NumberOfPages 乘以 ULONG_PTR 資料類型的大小。 請勿嘗試修改此緩衝區。其中包含作業系統資料,損毀可能會造成災難性的後果。緩衝區中的資訊對應用程式沒有用處。
傳回值
類型:BOOL 如果函式成功,傳回值為 TRUE。 配置的頁面可能少於要求的數量。呼叫端必須在傳回時檢查 NumberOfPages 參數的值,以查看配置了多少頁面。所有已配置的頁框編號會依序放入 PageArray 參數所指向的記憶體中。 如果函式失敗,傳回值為 FALSE,而且不會配置任何頁框。若要取得延伸錯誤資訊,請呼叫 GetLastError。備註
此 API 會配置實體記憶體頁面,以對應至指定處理序的區域內。 當應用程式可能想要預先配置許多段實體連續的頁面,並根據執行階段動態判斷的變動條件,將其細分為個別的 64KB 頁面時,XMemAllocatePhysicalPages 就很有用。XMemAllocatePhysicalPages 可配置實體頁面,而不將其放入虛擬位址空間。 XMemAllocatePhysicalPages 會以實體頁面配置要求的記憶體數量。無論是否使用 XMEM_2MB_CLUSTERS,傳回陣列中的頁碼都是指個別的 64KB 頁面。對應至使用 MEM_64K_PAGES 建立的保留區時,可以自由使用這些頁面。不過,對應至使用 MEM_2MB_PAGES 建立的保留區時,需要指定 XMEM_2MB_CLUSTERS 時所傳回的連續 2MB 叢集。對應至使用 MEM_2MB_PAGES 建立的保留區時,只會使用每個 2MB 叢集的第一個實體頁面。 傳回時,NumberOfPages 傳回的數目可能少於要求的頁面數目。 若要釋放以 XMemAllocatePhysicalPages 配置的頁面,請呼叫 XMemFreePhysicalPages。 範例:需求
標頭: xmem.h 程式庫: xmem.lib 支援的平台: XBOX One 系列主機和 XBOX Series 主機另請參閱
XMem 參考XMemVirtualAlloc
XMemMapPhysicalPages
XMemFreePhysicalPages
