Skip to main content

XMemSetOption

XMem の構成設定を設定します。

Syntax

Parameters

option   _In_
型: XMEM_OPTION
設定するオプション構成。

Return value

型: void

Remarks

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 コールバックは realloc の発生後に古いアドレスと新しいアドレスと共に呼び出されます。このオプションが設定されている場合、HeapFree コールバックは HeapReAlloc の呼び出し前に古いアドレスと共に追加で呼び出されます。

eXMEMOPT_XMEMALLOCDEFAULT_TAG_VIRTUALALLOC (BOOL)
割り当てを満たすために XMemAllocDefault が行うすべての XMemVirtualAlloc の呼び出しに対して、コミット タグの追加を有効にします (たとえば、割り当て要求が内部 XMem ヒープに収まらないほど大きい場合)。コミット タグは XMemMakeTag(‘XmVA’) で追加されます。これにより、開発者は XMemAllocDefault によって消費されるメモリの合計量を計算できます。詳細については、診断とメモリ トラッキング を参照してください。

eXMEMOPT_SET_XMEM_TAG_TREE_SIZE (INT)
設定すると、カスタム XMem タグ用に割り当てられる記憶領域が、指定されたサイズ (メガバイト単位) に設定されます。

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)
このオプションは、通常は内部 XMem ヒープによって処理されるすべての割り当てを、XMemVirtualAlloc の呼び出しに昇格するように XMemAllocDefault を構成します。さらに、メモリは VirtualFree(MEM_DECOMMIT) を使用して解放されます。これは意図的に仮想アドレス空間をリークし、最終的には割り当ての失敗を引き起こしますが、use-after-free エラーを検出するための便利な診断支援となります。昇格ロジックのソース コードは、Microsoft Game Development Kit (GDK) の一部として提供されます。詳細については、\GXDK\gameKit\Source\amd64\heap.c にある XmpTrapUseAfterFree 変数の使用方法を参照してください。

eXMEMOPT_XMEMALLOCDEFAULT_USE64KPAGES (BOOL)
このオプションは、内部 XMem ヒープに対して 2MB ページではなく 64KB ページを使用するように XMemAllocDefault を構成します。さらに、64KB ページを使用するヒープでは、コミット/デコミットの粒度が 2MB ではなく 512KB になります。XMemAllocDefalt の実装のソース コードは、Microsoft Game Development Kit (GDK) の一部として提供されます。詳細については、\GXDK\gameKit\Source\amd64\heap.c ファイルを参照してください。

eXMEMOPT_ALLOW_WRITEABLE_FILEMAPPINGS (BOOL)
このオプションを有効にすると、書き込み可能フラグを指定して CreateFileMappingA/W を呼び出したときに成功できるようになります。

Requirements

ヘッダー: xmem.h ライブラリ: xmem.lib
サポートされているプラットフォーム: XBOX One ファミリー本体および XBOX Series 本体

See also

XMem XMemMakeTag XError
最終更新日 2026年8月24日