Skip to main content

XMemSetOption

設定 XMem 的組態設定。

語法

參數

option   _In_
類型:XMEM_OPTION
要設定的選項組態。

傳回值

類型:void

備註

XMemSetOption 用於設定 XMem 系統的選用行為。 eXMEMOPT_VALIDATE_XMEMALLOC (BOOL)
啟用對呼叫 XMemAlloc 所傳回之記憶體屬性的驗證,以確保其符合所要求記憶體類型的對齊、頁面大小、頁面保護和快取屬性。這是供開發期間使用,以攔截 XMemAlloc 私人實作中的錯誤。驗證邏輯的原始程式碼會作為 Microsoft Game Development Kit (GDK) 的一部分提供。如需詳細資訊,請參閱 \GXDK\gameKit\Source\amd64\heap.c 中的 XmpVerifyXMemAllocRoutine 函式。

eXMEMOPT_RAISE_HEAPFREE_CALLBACK_ON_REALLOC (BOOL)
啟用在呼叫 HeapReAlloc 時,呼叫由 XMemSetWin32HeapTrackingHooks 設定的 HeapFree 回呼。若沒有此選項,HeapReAlloc 回呼會在重新配置發生後,以舊位址和新位址呼叫。設定此選項時,還會在 HeapReAlloc 呼叫之前,以舊位址呼叫 HeapFree 回呼。

eXMEMOPT_XMEMALLOCDEFAULT_TAG_VIRTUALALLOC (BOOL)
啟用在 XMemAllocDefault 為了滿足配置而對 XMemVirtualAlloc 進行的每次呼叫中加入認可標記 (例如,當配置要求太大而無法放入內部 XMem 堆積時)。認可標記是以 XMemMakeTag(‘XmVA’) 加入。這可讓開發人員計算 XMemAllocDefault 所耗用的記憶體總量。如需詳細資訊,請參閱診斷與記憶體追蹤。

eXMEMOPT_SET_XMEM_TAG_TREE_SIZE (INT)
設定時,自訂 XMem 標記的已配置儲存空間會設定為指定的大小 (以 MB 為單位)。

eXMEMOPT_XMEM_WARN_WHEN_TAG_TREE_FULL (BOOL)
設定時,如果自訂 XMem 標記的已配置儲存空間已用盡,將透過 XError 引發執行階段警告。

eXMEMOPT_XMEMALLOCDEFAULT_DISABLEPAGESIZEDEMOTION (BOOL)
XMemAllocDefault 所使用的內部 XMem 堆積一開始是使用 2MB 頁面建立,但已設定為在使用 2MB 頁面擴大堆積失敗時,回復降級為 64KB 頁面。此旗標會停用降級行為。頁面大小降級邏輯的原始程式碼會作為 Microsoft Game Development Kit (GDK) 的一部分提供。如需詳細資訊,請參閱 \GXDK\gameKit\Source\amd64\heap.c 中的 XmpAllocateHeapMemory 函式

eXMEMOPT_XMEMALLOCDEFAULT_TRAPUSEAFTERFREE (BOOL)
此選項會設定 XMemAllocDefault,將通常由內部 XMem 堆積處理的任何配置提升為 XMemVirtualAlloc 呼叫。此外,記憶體會使用 VirtualFree(MEM_DECOMMIT) 釋放。雖然這會刻意流失虛擬位址空間,最終導致配置失敗,但這是攔截釋放後使用錯誤的實用診斷輔助工具。提升邏輯的原始程式碼會作為 Microsoft Game Development Kit (GDK) 的一部分提供。如需詳細資訊,請參閱 \GXDK\gameKit\Source\amd64\heap.c 中 XmpTrapUseAfterFree 變數的用法

eXMEMOPT_XMEMALLOCDEFAULT_USE64KPAGES (BOOL)
此選項會設定 XMemAllocDefault 對內部 XMem 堆積使用 64KB 頁面,而非 2MB 頁面。此外,使用 64KB 頁面的堆積具有 512KB 的認可/解除認可細微度,而非 2MB。XMemAllocDefalt 實作的原始程式碼會作為 Microsoft Game Development Kit (GDK) 的一部分提供。如需詳細資訊,請參閱檔案 \GXDK\gameKit\Source\amd64\heap.c

eXMEMOPT_ALLOW_WRITEABLE_FILEMAPPINGS (BOOL)
啟用時,此選項允許以可寫入旗標呼叫 CreateFileMappingA/W 時成功。

需求

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

另請參閱

XMem XMemMakeTag XError
Last modified on October 6, 2026