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

Crea un montón Win32.

<a id="syntaxSection" />

## Sintaxis

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

<a id="parametersSection" />

### Parámetros

*HeapFlags*   \_In\_<br />Tipo: ULONGLONG

Indica el origen de la memoria del montón que se va a crear.

| Marca                 | Descripción                                                                                                                                                            |
| --------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `XMEM_HEAP_DEFAULT`   | La memoria del montón se asigna desde la partición del título. Debe especificar `NULL` para *baseAddress* cuando use esta marca.                                       |
| `XMEM_HEAP_TOOL`      | La memoria del montón se asigna desde la partición de herramientas, si la partición está disponible. Debe especificar `NULL` para *baseAddress* cuando use esta marca. |
| `XMEM_HEAP_INPLACE`   | El montón usa el bloque de memoria especificado en *baseAddress*. Debe especificar una dirección en memoria confirmada para *baseAddress* cuando use esta marca.       |
| `XMEM_HEAP_64K_PAGES` | La memoria del montón se asigna usando páginas de 64 KB en lugar de páginas de 2 MB.                                                                                   |

*baseAddress*   \_In\_<br />Tipo: PVOID

La dirección base para la asignación del montón in situ. Si `HeapFlags` se establece en `XMEM_HEAP_INPLACE`, este valor debe apuntar a una dirección en memoria confirmada que esté alineada con un límite de 4 KB; de lo contrario, este valor debe establecerse en `NULL`.

<a id="retvalSection" />

### Valor devuelto

Tipo: HANDLE

Devuelve un identificador del montón Win32 creado, si se realiza correctamente; de lo contrario, devuelve `NULL`. Si está disponible, se proporciona información de error extendida a la devolución de llamada [XErrorCallback](/reference/system/xerror/functions/xerrorcallback) actual de su aplicación.

<a id="remarksSection" />

## Comentarios

Esta función crea un montón Win32, asignando memoria para el montón desde el origen y la dirección base indicados por `HeapFlags` y `baseAddress`, respectivamente. Si no se especificó `XMEM_HEAP_INPLACE` en `HeapFlags` cuando se creó el montón, el montón está respaldado por páginas de 2 MB (o páginas de 64 KB si se especifica XMEM\_HEAP\_64K\_PAGES). Si se produce un error al intentar crear un montón Win32, este método devuelve `NULL` y, si está disponible, el error se notifica a la devolución de llamada [XErrorCallback](/reference/system/xerror/functions/xerrorcallback) actual de su aplicación. Para obtener más información sobre cómo controlar casos de error excepcionales, consulte [XError](/reference/system/xerror/xerror_members).

Para obtener más información sobre cómo configurar y acceder a la memoria, consulte [Configuración de la memoria para su título y kit de desarrollo](/build/console-features/memory/system-memory-tooling).

<a id="remarks_tooling" />

### Asignación de memoria de herramientas

Si se especifica `XMEM_HEAP_TOOL` en `HeapFlags`, la función intenta asignar memoria desde la partición de herramientas para crear el montón Win32, en función de la configuración del modo de generación de perfiles y del modo de iteración:

* Si el modo de iteración está deshabilitado y el modo de generación de perfiles está habilitado, la función intenta asignar la cantidad de memoria solicitada desde la partición de herramientas. Si la cantidad solicitada no está disponible, se produce un error.
* Si el modo de iteración está deshabilitado y el modo de generación de perfiles está deshabilitado, se produce un error.
* Si el modo de iteración está habilitado, la función intenta asignar la cantidad de memoria solicitada desde la partición del título. Si la cantidad solicitada no está disponible, se produce un error.

Cuando el modo de generación de perfiles está habilitado, se pone a disposición de su título memoria adicional que se puede usar durante el desarrollo para cualquier cosa, desde herramientas del motor de juego hasta recursos de juego sin optimizar. Para obtener más información sobre el modo de generación de perfiles, consulte [Modo de generación de perfiles](/build/console-features/debugging-diagnostics/profiling-mode). La partición de herramientas no está disponible cuando el modo de iteración está habilitado.

Puede usar la función [XMemIsToolsMemAvailable](/reference/system/xmem/functions/xmemistoolsmemavailable) para comprobar si la memoria de la partición de herramientas está disponible en el modo de generación de perfiles.

<a id="requirementsSection" />

## Requisitos

**Encabezado:** xmem.h

**Biblioteca:** xmem.lib

**Plataformas compatibles:** consolas de la familia XBOX One y consolas XBOX Series

<a id="seealsoSection" />

## Consulte también

[Memoria](/build/console-features/memory/system-memory-overview)<br />[XMem](/reference/system/xmem/xmem_members)


## Related topics

- [PHEAP_TRACK_ALLOC_ROUTINE callback](/es/reference/system/xmem/functions/pheap_track_alloc_routine.md)
- [PHEAP_TRACK_FREE_ROUTINE callback](/es/reference/system/xmem/functions/pheap_track_free_routine.md)
- [PHEAP_TRACK_REALLOC_ROUTINE callback](/es/reference/system/xmem/functions/pheap_track_realloc_routine.md)
- [XMemSetWin32HeapName](/es/reference/system/xmem/functions/xmemsetwin32heapname.md)
- [XMemGetWin32HeapName](/es/reference/system/xmem/functions/xmemgetwin32heapname.md)
