> ## 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.

# XMEM_SET_ALLOCATION_HOOKS

> XMEM_SET_ALLOCATION_HOOKS

# XMEM\_SET\_ALLOCATION\_HOOKS

タイトルがメモリ割り当てフックを登録するために使用します。

## Syntax

```cpp theme={null}
#define XMEM_SET_ALLOCATION_HOOKS(AllocRoutine, FreeRoutine) \
    __declspec(dllexport) XMEM_ALLOCATION_HOOKS __XMemAllocationHooks__ = { AllocRoutine, FreeRoutine };
```

### Parameters

*AllocRoutine*   *In*

型: PXMEMALLOC\_ROUTINE

タイトルの割り当て関数へのポインター。この関数の定義については、[XMEMALLOC\_ROUTINE](https://devdocs.xbox.com/ja-jp/reference/system/xmem/functions/xmemalloc_routine.md) のトピックを参照してください。

*FreeRoutine*   *In*\
型: PXMEMFREE\_ROUTINE

タイトルの割り当て解除関数へのポインター。この関数の定義については、[XMEMFREE\_ROUTINE](https://devdocs.xbox.com/ja-jp/reference/system/xmem/functions/xmemalloc_routine.md) のトピックを参照してください。

## Remarks

割り当ては、**XMEM\_SET\_ALLOCATION\_HOOKS** マクロを通じてタイトルが提供するコールバックで監視 (またはオーバーライド) できます。このマクロを適切に使用することで、タイトルはタイトル コードから行われるすべての割り当てだけでなく、プラットフォーム コードからの割り当ても追跡できます。

タイトルが独自の割り当てフックを提供しないことを選択した場合は、代わりに **XMemAllocDefault** と **XMemFreeDefault** が使用されます (これらのフックの宣言については xmem.h を参照してください)。トラッキングのために割り当てフックを提供したいが、独自のアロケーターを実装したくない場合は、既定のアロケーターを直接呼び出すことができます。

[XMEMALLOC\_ROUTINE](https://devdocs.xbox.com/ja-jp/reference/system/xmem/functions/xmemalloc_routine.md) と [XMEMFREE\_ROUTINE](https://devdocs.xbox.com/ja-jp/reference/system/xmem/functions/xmemfree_routine.md) の両方をフックする場合は、両方の実装を提供することが重要です。一方だけをフックすることはエラーとみなされます。

タイトルが提供するフックはゲーム実行可能ファイルからエクスポートされ、xmem.dll のロード時 (通常はゲームが起動される時) にバインドされます。

> [!NOTE]
>
> XMemSetAllocationHooks によって登録される関数は、アドレスが静的に設定されることを保証するために、ゲーム exe 内で定義する必要があります。指定される関数ポインターがゲーム exe から参照される DLL 内の関数を参照している場合、コンパイラはメモリを設定するための静的初期化子コードを出力する必要があります。このコードはプラットフォームがオーバーライド フックをクエリした後に実行される可能性があり、予測できない動作を引き起こします。プラットフォームがこのことが発生した可能性があると検出した場合、デバッガー出力ウィンドウに警告が表示されます。

## Requirements

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

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

## See also

[XMem reference](https://devdocs.xbox.com/ja-jp/reference/system/xmem/xmem_members.md)\
[XMEM\_ALLOCATION\_HOOKS](https://devdocs.xbox.com/ja-jp/reference/system/xmem/structs/xmem_allocation_hooks.md)\
[XMEMALLOC\_ROUTINE](https://devdocs.xbox.com/ja-jp/reference/system/xmem/functions/xmemalloc_routine.md)\
[XMEMFREE\_ROUTINE](https://devdocs.xbox.com/ja-jp/reference/system/xmem/functions/xmemalloc_routine.md)


## Related topics

- [XMEM_ALLOCATION_HOOKS](https://devdocs.xbox.com/reference/system/xmem/structs/xmem_allocation_hooks.md)
- [XMemFreeDefault](https://devdocs.xbox.com/reference/system/xmem/functions/xmemfreedefault.md)
