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

Usada pelos títulos para registrar ganchos de alocação de memória.

## Sintaxe

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

### Parâmetros

*AllocRoutine*   *In*

Tipo: PXMEMALLOC\_ROUTINE

Ponteiro para a função de alocação do título. Consulte o tópico [XMEMALLOC\_ROUTINE](/pt-BR/reference/system/xmem/functions/xmemalloc_routine) para obter a definição dessa função.

*FreeRoutine*   *In*\
Tipo: PXMEMFREE\_ROUTINE

Ponteiro para a função de desalocação do título. Consulte o tópico [XMEMFREE\_ROUTINE](/pt-BR/reference/system/xmem/functions/xmemalloc_routine) para obter a definição dessa função.

## Comentários

As alocações podem ser monitoradas (ou substituídas) com um retorno de chamada fornecido pelo título por meio da macro **XMEM\_SET\_ALLOCATION\_HOOKS**. Com o uso adequado dessa macro, os títulos podem rastrear todas as alocações feitas pelo código do título, bem como pelo código da plataforma.

Se os títulos optarem por não fornecer seus próprios ganchos de alocação, **XMemAllocDefault** e **XMemFreeDefault** serão usados em seu lugar (consulte xmem.h para ver a declaração desses ganchos). Se os títulos quiserem fornecer ganchos de alocação para fins de rastreamento, mas não quiserem implementar seu próprio alocador, eles poderão chamar o alocador padrão diretamente.

É importante fornecer uma implementação tanto para [XMEMALLOC\_ROUTINE](/pt-BR/reference/system/xmem/functions/xmemalloc_routine) quanto para [XMEMFREE\_ROUTINE](/pt-BR/reference/system/xmem/functions/xmemfree_routine) se você conectar ganchos a elas; conectar um gancho a apenas uma delas será considerado um erro.

Os ganchos fornecidos pelo título são exportados do executável do jogo e vinculados no momento do carregamento de xmem.dll (normalmente no momento em que o jogo é iniciado).

<Note>As funções registradas por XMemSetAllocationHooks devem ser definidas no exe do jogo para garantir que os endereços sejam preenchidos estaticamente.  Se os ponteiros de função fornecidos se referirem a funções em DLLs referenciadas pelo exe do jogo, o compilador precisará emitir código de inicializador estático para preencher a memória, o qual pode ser executado depois que a plataforma tiver consultado os ganchos de substituição, resultando em comportamento imprevisível.  Um aviso aparecerá na janela de saída do depurador se a plataforma detectar que isso pode ter ocorrido.</Note>

## Requisitos

**Cabeçalho:** xmem.h

**Plataformas compatíveis:** consoles da família XBOX One e consoles XBOX Series

## Confira também

[Referência de XMem](/pt-BR/reference/system/xmem/xmem_members)\
[XMEM\_ALLOCATION\_HOOKS](/pt-BR/reference/system/xmem/structs/xmem_allocation_hooks)\
[XMEMALLOC\_ROUTINE](/pt-BR/reference/system/xmem/functions/xmemalloc_routine)\
[XMEMFREE\_ROUTINE](/pt-BR/reference/system/xmem/functions/xmemalloc_routine)


## Related topics

- [XMEM_ALLOCATION_HOOKS](/reference/system/xmem/structs/xmem_allocation_hooks.md)
- [XMemFreeDefault](/reference/system/xmem/functions/xmemfreedefault.md)
