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

# XMemCreateWin32Heap

> XMemCreateWin32Heap

# XMemCreateWin32Heap

Win32 ヒープを作成します。

## Syntax

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

### Parameters

*HeapFlags*   \_In\_\
型: ULONGLONG

作成するヒープのメモリ ソースを示します。

| フラグ | 説明 |
| - | - |
| `XMEM_HEAP_DEFAULT` | ヒープ メモリはタイトル パーティションから割り当てられます。このフラグを使用する場合は *baseAddress* に `NULL` を指定する必要があります。 |
| `XMEM_HEAP_TOOL` | ヒープ メモリはツール パーティションから割り当てられます (パーティションが利用可能な場合)。このフラグを使用する場合は *baseAddress* に `NULL` を指定する必要があります。 |
| `XMEM_HEAP_INPLACE` | *baseAddress* に指定されたメモリ ブロックがヒープに使用されます。このフラグを使用する場合、*baseAddress* にはコミットされたメモリ内のアドレスを指定する必要があります。 |
| `XMEM_HEAP_64K_PAGES` | ヒープ メモリは 2MB ページの代わりに 64KB ページを使用して割り当てられます。 |

*baseAddress*   \_In\_\
型: PVOID

インプレース ヒープ割り当てのベース アドレス。`HeapFlags` が `XMEM_HEAP_INPLACE` に設定されている場合、この値は 4-KB 境界に整列されたコミットされたメモリ内のアドレスを指す必要があります。それ以外の場合、この値は `NULL` に設定する必要があります。

### Return value

型: HANDLE

成功した場合、作成された Win32 ヒープへのハンドルを返します。それ以外の場合は `NULL` を返します。利用可能な場合、拡張エラー情報はアプリの現在の [XErrorCallback](https://docs.xbox.com/ja-jp/reference/system/xerror/functions/xerrorcallback.md) コールバックに提供されます。

## Remarks

この関数は Win32 ヒープを作成し、`HeapFlags` と `baseAddress` によって示されるソースとベース アドレスからヒープのメモリを割り当てます。ヒープの作成時に `HeapFlags` で `XMEM_HEAP_INPLACE` が指定されなかった場合、ヒープは 2MB ページ (XMEM\_HEAP\_64K\_PAGES が指定されている場合は 64KB ページ) によってバッキングされます。Win32 ヒープを作成しようとしているときにエラーが発生した場合、このメソッドは `NULL` を返し、利用可能な場合はエラーがアプリの現在の [XErrorCallback](https://docs.xbox.com/ja-jp/reference/system/xerror/functions/xerrorcallback.md) コールバックに報告されます。例外的なエラーの処理の詳細については、[XError](https://docs.xbox.com/ja-jp/reference/system/xerror/xerror_members.md) を参照してください。

メモリの構成とアクセスの詳細については、[Configuring memory for your title and dev kit](https://docs.xbox.com/ja-jp/build/console-features/memory/system-memory-tooling.md) を参照してください。

### ツール メモリの割り当て

`HeapFlags` に `XMEM_HEAP_TOOL` が指定されている場合、関数は、プロファイリング モードとイテレーション モードの設定に応じて、Win32 ヒープを作成するためにツール パーティションからメモリを割り当てようとします。

* イテレーション モードが無効でプロファイリング モードが有効な場合、関数はツール パーティションから要求された量のメモリを割り当てようとします。要求された量が利用できない場合、エラーが発生します。
* イテレーション モードが無効でプロファイリング モードも無効な場合、エラーが発生します。
* イテレーション モードが有効な場合、関数はタイトル パーティションから要求された量のメモリを割り当てようとします。要求された量が利用できない場合、エラーが発生します。

プロファイリング モードが有効な場合、開発中に、ゲーム エンジン ツールから最適化されていないゲーム アセットに至るまで、あらゆることに使用できる追加のメモリがタイトルで利用可能になります。プロファイリング モードの詳細については、[Profiling Mode](https://docs.xbox.com/ja-jp/build/console-features/debugging-diagnostics/profiling-mode.md) を参照してください。イテレーション モードが有効な場合、ツール パーティションは利用できません。

プロファイリング モードでツール パーティションのメモリが利用可能かどうかを確認するには、[XMemIsToolsMemAvailable](https://docs.xbox.com/ja-jp/reference/system/xmem/functions/xmemistoolsmemavailable.md) 関数を使用できます。

## Requirements

**ヘッダー:** xmem.h

**ライブラリ:** xmem.lib

**サポートされているプラットフォーム:** XBOX One ファミリー本体および XBOX Series 本体

## See also

[Memory](https://docs.xbox.com/ja-jp/build/console-features/memory/system-memory-overview.md)\
[XMem](https://docs.xbox.com/ja-jp/reference/system/xmem/xmem_members.md)


## Related topics

- [PHEAP_TRACK_ALLOC_ROUTINE callback](https://docs.xbox.com/ja-jp/reference/system/xmem/functions/pheap_track_alloc_routine.md)
- [PHEAP_TRACK_FREE_ROUTINE callback](https://docs.xbox.com/ja-jp/reference/system/xmem/functions/pheap_track_free_routine.md)
- [PHEAP_TRACK_REALLOC_ROUTINE callback](https://docs.xbox.com/ja-jp/reference/system/xmem/functions/pheap_track_realloc_routine.md)
- [XMemGetWin32HeapName](https://docs.xbox.com/ja-jp/reference/system/xmem/functions/xmemgetwin32heapname.md)
- [XMemGetWin32HeapStatistics](https://docs.xbox.com/ja-jp/reference/system/xmem/functions/xmemgetwin32heapstatistics.md)
