Skip to main content

XMemFree

Função de retorno de chamada de desalocação de memória definida pelo aplicativo que substitui o desalocador de memória padrão.

Sintaxe

Parâmetros

Address _In_
Tipo: PVOID
Endereço da memória a ser liberada. Attributes _In_
Tipo: ULONGLONG
Atributos da alocação. Consulte XALLOC_ATTRIBUTES para obter detalhes.

Valor retornado

Tipo: VOID

Comentários

Para obter informações sobre a sintaxe das rotinas de alocação de memória, confira XMEMALLOC_ROUTINE.
O código-fonte da implementação padrão de XMemAlloc e XMemFree é instalado como parte do Microsoft Game Development Kit (GDK). Confira \GXDK\gameKit\Source\amd64\heap.c.
Se você implementar sua própria função XMemFree, é extremamente importante não fazer uma chamada ao driver do Direct3D 12 a partir dela. Isso ocorre porque a operação normal do driver pode levar à invocação de XMemFree sem proteção contra recursão. O requisito se estende a não executar operações finais de Release em objetos do Direct3D 12, pois isso pode levar a chamadas implícitas ao driver.
É importante que o valor do parâmetro Attributes corresponda ao que foi passado na chamada original para XMemAlloc. Se esse valor é armazenado em cache pelo seu código ou sintetizado conforme necessário fica a critério da sua implementação. Considere um cenário em que seu alocador subjacente aloca blocos contíguos de 16 bytes alinhados em um limite de 16 bytes, mas você solicita um bloco de 128 bytes alinhado a 64 bytes, semelhante, na verdade, ao heap do CRT se o alocador de objetos pequenos estiver desativado. Para atender a essa solicitação, o alocador pode, na verdade, alocar mais de 128 bytes para poder alinhar o endereço para você. Ao fazer isso, ele pode armazenar o comprimento do bloco e o endereço inicial real do bloco não alinhado no bloco de 16 bytes antes do endereço que ele retorna a você. A única maneira de determinar corretamente se esse foi o caso é ter as informações completas do parâmetro Attributes para identificar qual alocador foi usado e seguir corretamente a cadeia de volta até o início real do bloco alocado. Não fazer Attributes corresponder pode levar a corrupção, vazamentos de memória ou outro comportamento incorreto.

Requisitos

Cabeçalho: xmem.h Biblioteca: xmem.lib Plataformas com suporte: consoles da família XBOX One e consoles XBOX Series

Confira também

Referência de XMem
XMEMALLOC_ROUTINE
XALLOC_ATTRIBUTES
XMemAlloc
XMemFreeDefault
Last modified on October 6, 2026