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.cXmpVerifyXMemAllocRoutine 함수를 참조하세요.

eXMEMOPT_RAISE_HEAPFREE_CALLBACK_ON_REALLOC (BOOL)
HeapReAlloc이 호출된 경우 XMemSetWin32HeapTrackingHooks로 구성된 HeapFree 콜백을 호출하는 것을 활성화합니다. 이 옵션이 없으면 realloc이 발생한 후 이전 주소와 새 주소로 HeapReAlloc 콜백이 호출됩니다. 이 옵션이 설정된 경우 HeapReAlloc 호출 전에 이전 주소로 HeapFree 콜백도 추가로 호출됩니다.

eXMEMOPT_XMEMALLOCDEFAULT_TAG_VIRTUALALLOC (BOOL)
할당을 충족하기 위해 XMemAllocDefaultXMemVirtualAlloc을 호출할 때마다 커밋 태그를 추가하는 것을 활성화합니다(예: 할당 요청이 너무 커서 내부 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.cXmpAllocateHeapMemory 함수를 참조하세요.

eXMEMOPT_XMEMALLOCDEFAULT_TRAPUSEAFTERFREE (BOOL)
이 옵션은 일반적으로 내부 XMem 힙에서 처리하는 모든 할당을 XMemVirtualAlloc 호출로 승격하도록 XMemAllocDefault를 구성합니다. 또한 메모리는 VirtualFree(MEM_DECOMMIT)를 사용하여 해제됩니다. 이는 의도적으로 가상 주소 공간을 누수시키고 결국 할당 실패로 이어지지만, use-after-free 오류를 잡는 데 유용한 진단 도구입니다. 승격 로직에 대한 소스 코드는 Microsoft Game Development Kit(GDK)의 일부로 제공됩니다. 자세한 내용은 \GXDK\gameKit\Source\amd64\heap.cXmpTrapUseAfterFree 변수의 사용을 참조하세요.

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 호출이 성공하도록 허용합니다.

요구 사항

헤더: xmem.h 라이브러리: xmem.lib
지원 플랫폼: XBOX One 제품군 콘솔 및 XBOX Series 콘솔

함께 보기

XMem XMemMakeTag XError
마지막 수정일 2026년 8월 24일