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

# XMemVirtualQuery

> XMemVirtualQuery

# XMemVirtualQuery

Recupera información sobre un intervalo de páginas en el espacio de direcciones virtuales del proceso que realiza la llamada.

<a id="syntaxSection" />

## Sintaxis

```cpp theme={null}
BOOL XMemVirtualQuery(  
         HANDLE Process,  
         PVOID Address,  
         PXMEM_BASIC_INFORMATION Buffer  
)  
```

<a id="parametersSection" />

### Parámetros

*Process*   \_In\_\
Tipo: HANDLE

Identificador de proceso, normalmente obtenido mediante una llamada a [GetCurrentProcess](https://learn.microsoft.com/windows/desktop/api/processthreadsapi/nf-processthreadsapi-getcurrentprocess).

*Address*   \_In\_opt\_\
Tipo: PVOID

Puntero a la dirección base de la región de páginas que se va a consultar. Este valor se redondea hacia abajo hasta el siguiente límite de página. Si este parámetro se establece en una dirección superior a la dirección de memoria más alta accesible para el proceso, la función produce un error con el código de error establecido en **ERROR\_INVALID\_PARAMETER**.

*Buffer*   \_Out\_\
Tipo: PXMEM\_BASIC\_INFORMATION

Puntero a una estructura [XMEM\_BASIC\_INFORMATION](/reference/system/xmem/structs/xmem_basic_information) en la que se devuelve información sobre el intervalo de páginas especificado.

<a id="retvalSection" />

### Valor devuelto

Tipo: BOOL

Devuelve `TRUE` si se ejecuta correctamente; de lo contrario, `FALSE`. Para obtener información de error extendida, llame a [GetLastError](https://msdn.microsoft.com/library/windows/desktop/ms679360\(v=vs.85\).aspx).

<a id="remarksSection" />

## Comentarios

Las herramientas pueden pasar el identificador a un proceso remoto para consultar el título desde fuera del proceso actual.

Si la región de memoria consultada tiene asociada una etiqueta opcional de código de cuatro caracteres, la etiqueta se incluye en el campo `TagFourCC` y se codifica como una representación de 24 bits en el campo `TagCode` de la estructura `XMEM_BASIC_INFORMATION` devuelta en `Buffer`. De lo contrario, el campo `TagFourCC` se rellena con valores NULL y el campo `TagCode` debe ignorarse. Para obtener más información sobre las etiquetas, consulte [XMemVirtualAlloc](/reference/system/xmem/functions/xmemvirtualalloc).

Ejemplo: para calcular el uso total de memoria de la memoria asignada mediante una llamada directa a 'XMemVirtualAlloc', se necesita una combinación de 'XMemSetOption' y 'XMemVirtualQuery'.

```cpp theme={null}
// To enable commit tracking
XMEM_OPTION option;
option.Option = eXMEMOPT_XMEMALLOCDEFAULT_TAG_VIRTUALALLOC;
option.u.Bool = TRUE;
XMemSetOption(option);

// To query the total commit
SIZE_T address = 0;
SIZE_T commitSize = 0;
XMEM_BASIC_INFORMATION info; = {};
while (XMemVirtualQuery(GetCurrentProcess(), (PVOID)address, &info))
{
        if ((info.State & MEM_COMMIT) &&
                (*(PDWORD)(info.TagFourCC) == *(PDWORD)("XmVA"))) {

                commitSize += info.RegionSize;
        }

        address += info.RegionSize;
}
```

<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

[XMEM\_BASIC\_INFORMATION](/reference/system/xmem/structs/xmem_basic_information)\
[XMem](/reference/system/xmem/xmem_members)


## Related topics

- [Trabajo con el administrador de memoria del sistema operativo de juego del Microsoft GDK](/es/build/console-features/memory/system-memory-working.md)
- [XMemMakeTag](/es/reference/system/xmem/functions/xmemmaketag.md)
- [XMemMapPhysicalPages](/es/reference/system/xmem/functions/xmemmapphysicalpages.md)
- [XMemMapPhysicalPagesScatter](/es/reference/system/xmem/functions/xmemmapphysicalpagesscatter.md)
- [XMEM_OPTIONS](/es/reference/system/xmem/enums/xmem_options.md)
