> ## 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` | 堆積記憶體使用 64KB 頁面而非 2MB 頁面配置。 |

*baseAddress*   \_In\_<br />類型：PVOID

就地堆積配置的基底位址。如果 `HeapFlags` 設定為 `XMEM_HEAP_INPLACE`，此值必須指向已認可記憶體中對齊 4 KB 邊界的位址；否則，此值必須設定為 `NULL`。

<a id="retvalSection" />

### 傳回值

類型：HANDLE

如果成功，則傳回所建立 Win32 堆積的控制代碼；否則傳回 `NULL`。如果可用，延伸錯誤資訊會提供給您應用程式目前的 [XErrorCallback](/zh-TW/reference/system/xerror/functions/xerrorcallback) 回呼。

<a id="remarksSection" />

## 備註

此函式會建立 Win32 堆積，並分別從 `HeapFlags` 和 `baseAddress` 所指示的來源和基底位址為堆積配置記憶體。如果建立堆積時未在 `HeapFlags` 中指定 `XMEM_HEAP_INPLACE`，堆積會由 2MB 頁面支援 (如果指定了 XMEM\_HEAP\_64K\_PAGES，則為 64KB 頁面)。如果嘗試建立 Win32 堆積時發生錯誤，此方法會傳回 `NULL`，且如果可用，錯誤會回報給您應用程式目前的 [XErrorCallback](/zh-TW/reference/system/xerror/functions/xerrorcallback) 回呼。如需處理例外錯誤情況的詳細資訊，請參閱 [XError](/zh-TW/reference/system/xerror/xerror_members)。

如需設定和存取記憶體的詳細資訊，請參閱[為您的遊戲和開發套件設定記憶體](/zh-TW/build/console-features/memory/system-memory-tooling)。

<a id="remarks_tooling" />

### 配置工具記憶體

如果在 `HeapFlags` 中指定 `XMEM_HEAP_TOOL`，函式會根據分析模式和反覆運算模式設定，嘗試從工具分割區配置記憶體以建立 Win32 堆積：

* 如果停用反覆運算模式並啟用分析模式，函式會嘗試從工具分割區配置所要求的記憶體量。如果所要求的量無法使用，就會發生錯誤。
* 如果停用反覆運算模式並停用分析模式，就會發生錯誤。
* 如果啟用反覆運算模式，函式會嘗試從遊戲分割區配置所要求的記憶體量。如果所要求的量無法使用，就會發生錯誤。

啟用分析模式時，會為您的遊戲提供額外的記憶體，可在開發期間用於從遊戲引擎工具到未最佳化遊戲資產等任何用途。如需分析模式的詳細資訊，請參閱[分析模式](/zh-TW/build/console-features/debugging-diagnostics/profiling-mode)。啟用反覆運算模式時，無法使用工具分割區。

您可以使用 [XMemIsToolsMemAvailable](/zh-TW/reference/system/xmem/functions/xmemistoolsmemavailable) 函式來檢查在分析模式中是否可使用工具分割區的記憶體。

<a id="requirementsSection" />

## 需求

**標頭：** xmem.h

**程式庫：** xmem.lib

**支援的平台：** XBOX One 系列主機和 XBOX Series 主機

<a id="seealsoSection" />

## 另請參閱

[記憶體](/zh-TW/build/console-features/memory/system-memory-overview)<br />[XMem](/zh-TW/reference/system/xmem/xmem_members)


## Related topics

- [XMemCreateWin32Heap](/reference/system/xmem/functions/xmemcreatewin32heap.md)
- [PHEAP_TRACK_ALLOC_ROUTINE callback](/reference/system/xmem/functions/pheap_track_alloc_routine.md)
- [PHEAP_TRACK_FREE_ROUTINE callback](/reference/system/xmem/functions/pheap_track_free_routine.md)
- [PHEAP_TRACK_REALLOC_ROUTINE callback](/reference/system/xmem/functions/pheap_track_realloc_routine.md)
