> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# XMemCreateWin32Heap

> XMemCreateWin32Heap

# XMemCreateWin32Heap

Win32 힙을 만듭니다.

<a id="syntaxSection" />

## 구문

```cpp theme={null}
HANDLE XMemCreateWin32Heap(  
         ULONGLONG HeapFlags,  
         PVOID baseAddress  
)  
```

<a id="parametersSection" />

### 매개 변수

*HeapFlags*   \_In\_<br />형식: ULONGLONG

만들 힙에 대한 메모리의 소스를 지정합니다.

| 플래그                   | 설명                                                                                            |
| --------------------- | --------------------------------------------------------------------------------------------- |
| `XMEM_HEAP_DEFAULT`   | 힙 메모리가 타이틀 파티션에서 할당됩니다. 이 플래그를 사용할 때는 \_baseAddress\_에 `NULL`을 지정해야 합니다.                      |
| `XMEM_HEAP_TOOL`      | 파티션을 사용할 수 있는 경우 힙 메모리가 도구 파티션에서 할당됩니다. 이 플래그를 사용할 때는 \_baseAddress\_에 `NULL`을 지정해야 합니다.      |
| `XMEM_HEAP_INPLACE`   | \_baseAddress\_에 지정된 메모리 블록이 힙에서 사용됩니다. 이 플래그를 사용할 때는 \_baseAddress\_에 커밋된 메모리의 주소를 지정해야 합니다. |
| `XMEM_HEAP_64K_PAGES` | 힙 메모리가 2MB 페이지 대신 64KB 페이지를 사용하여 할당됩니다.                                                       |

*baseAddress*   \_In\_<br />형식: PVOID

내부(in-place) 힙 할당의 기본 주소입니다. `HeapFlags`가 `XMEM_HEAP_INPLACE`로 설정된 경우, 이 값은 4KB 경계에 정렬된 커밋된 메모리의 주소를 가리켜야 합니다. 그렇지 않으면 이 값은 `NULL`로 설정되어야 합니다.

<a id="retvalSection" />

### 반환 값

형식: HANDLE

성공하면 생성된 Win32 힙에 대한 핸들을 반환하고, 그렇지 않으면 `NULL`을 반환합니다. 사용할 수 있는 경우 확장 오류 정보가 앱의 현재 [XErrorCallback](/reference/system/xerror/functions/xerrorcallback) 콜백에 제공됩니다.

<a id="remarksSection" />

## 설명

이 함수는 `HeapFlags` 및 `baseAddress`가 각각 나타내는 소스와 기본 주소에서 힙에 대한 메모리를 할당하여 Win32 힙을 만듭니다. 힙이 생성될 때 `HeapFlags`에 `XMEM_HEAP_INPLACE`가 지정되지 않은 경우 힙은 2MB 페이지(또는 XMEM\_HEAP\_64K\_PAGES가 지정된 경우 64KB 페이지)로 지원됩니다. Win32 힙을 만들려고 시도하는 동안 오류가 발생하면 이 메서드는 `NULL`을 반환하고, 사용할 수 있는 경우 오류가 앱의 현재 [XErrorCallback](/reference/system/xerror/functions/xerrorcallback) 콜백에 보고됩니다. 예외 오류 사례 처리에 대한 자세한 내용은 [XError](/reference/system/xerror/xerror_members)를 참조하세요.

메모리 구성 및 액세스에 대한 자세한 내용은 [타이틀 및 개발 키트용 메모리 구성](/build/console-features/memory/system-memory-tooling)을 참조하세요.

<a id="remarks_tooling" />

### 도구 메모리 할당

`HeapFlags`에 `XMEM_HEAP_TOOL`이 지정된 경우, 함수는 프로파일링 모드 및 반복 모드 설정에 따라 도구 파티션에서 메모리를 할당하여 Win32 힙을 만들려고 시도합니다.

* 반복 모드가 비활성화되고 프로파일링 모드가 활성화된 경우 함수는 도구 파티션에서 요청된 양의 메모리를 할당하려고 시도합니다. 요청된 양을 사용할 수 없으면 오류가 발생합니다.
* 반복 모드가 비활성화되고 프로파일링 모드가 비활성화된 경우 오류가 발생합니다.
* 반복 모드가 활성화된 경우 함수는 타이틀 파티션에서 요청된 양의 메모리를 할당하려고 시도합니다. 요청된 양을 사용할 수 없으면 오류가 발생합니다.

프로파일링 모드가 활성화되면 게임 엔진 도구부터 최적화되지 않은 게임 자산에 이르기까지 개발 중에 사용할 수 있는 추가 메모리가 타이틀에 제공됩니다. 프로파일링 모드에 대한 자세한 내용은 [프로파일링 모드](/build/console-features/debugging-diagnostics/profiling-mode)를 참조하세요. 반복 모드가 활성화되면 도구 파티션을 사용할 수 없습니다.

[XMemIsToolsMemAvailable](/reference/system/xmem/functions/xmemistoolsmemavailable) 함수를 사용하여 프로파일링 모드에서 도구 파티션의 메모리를 사용할 수 있는지 여부를 확인할 수 있습니다.

<a id="requirementsSection" />

## 요구 사항

**헤더:** xmem.h

**라이브러리:** xmem.lib

**지원 플랫폼:** XBOX One 제품군 콘솔 및 XBOX Series 콘솔

<a id="seealsoSection" />

## 함께 보기

[메모리](/build/console-features/memory/system-memory-overview)<br />[XMem](/reference/system/xmem/xmem_members)


## Related topics

- [PHEAP_TRACK_REALLOC_ROUTINE callback](/ko/reference/system/xmem/functions/pheap_track_realloc_routine.md)
- [PHEAP_TRACK_ALLOC_ROUTINE callback](/ko/reference/system/xmem/functions/pheap_track_alloc_routine.md)
- [PHEAP_TRACK_FREE_ROUTINE callback](/ko/reference/system/xmem/functions/pheap_track_free_routine.md)
- [XMemSetWin32HeapName](/ko/reference/system/xmem/functions/xmemsetwin32heapname.md)
- [XMemGetWin32HeapName](/ko/reference/system/xmem/functions/xmemgetwin32heapname.md)
