> ## Documentation Index
> Fetch the complete documentation index at: https://docs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# XMemVirtualQuery

> XMemVirtualQuery

# XMemVirtualQuery

Récupère des informations sur une plage de pages dans l'espace d'adressage virtuel du processus appelant.

## Syntaxe

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

### Paramètres

*Process*   \_In\_\
Type : HANDLE

Handle de processus, généralement obtenu en appelant [GetCurrentProcess](https://learn.microsoft.com/windows/desktop/api/processthreadsapi/nf-processthreadsapi-getcurrentprocess).

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

Pointeur vers l'adresse de base de la région de pages à interroger. Cette valeur est arrondie à la limite de page inférieure. Si ce paramètre est défini sur une adresse supérieure à l'adresse mémoire la plus élevée accessible au processus, la fonction échoue avec un code d'erreur défini sur **ERROR\_INVALID\_PARAMETER**.

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

Pointeur vers une structure [XMEM\_BASIC\_INFORMATION](https://docs.xbox.com/fr/reference/system/xmem/structs/xmem_basic_information.md) dans laquelle sont renvoyées les informations sur la plage de pages spécifiée.

### Valeur renvoyée

Type : BOOL

Renvoie `TRUE` en cas de réussite ; sinon, `FALSE`. Pour obtenir des informations d'erreur étendues, appelez [GetLastError](https://msdn.microsoft.com/library/windows/desktop/ms679360\(v=vs.85\).aspx).

## Remarques

Les outils peuvent passer le handle d'un processus distant afin d'interroger le titre depuis l'extérieur du processus actuel.

Si une balise facultative de code à quatre caractères est associée à la région de mémoire interrogée, la balise est incluse dans le champ `TagFourCC` et encodée sous forme de représentation 24 bits dans le champ `TagCode` de la structure `XMEM_BASIC_INFORMATION` renvoyée dans `Buffer`. Sinon, le champ `TagFourCC` est rempli de valeurs NULL et le champ `TagCode` doit être ignoré. Pour plus d'informations sur les balises, consultez [XMemVirtualAlloc](https://docs.xbox.com/fr/reference/system/xmem/functions/xmemvirtualalloc.md).

Exemple : pour calculer l'utilisation totale de la mémoire allouée par un appel direct à 'XMemVirtualAlloc', une combinaison de 'XMemSetOption' et 'XMemVirtualQuery' est nécessaire.

```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;
}
```

## Configuration requise

**En-tête :** xmem.h

**Bibliothèque :** xmem.lib

**Plateformes prises en charge :** consoles de la famille XBOX One et consoles XBOX Series

## Voir aussi

[XMEM\_BASIC\_INFORMATION](https://docs.xbox.com/fr/reference/system/xmem/structs/xmem_basic_information.md)\
[XMem](https://docs.xbox.com/fr/reference/system/xmem/xmem_members.md)


## Related topics

- [Utilisation du gestionnaire de mémoire du système d'exploitation de jeu Microsoft GDK](https://docs.xbox.com/fr/build/console-features/memory/system-memory-working.md)
- [XMemMakeTag](https://docs.xbox.com/fr/reference/system/xmem/functions/xmemmaketag.md)
- [XMemMapPhysicalPages](https://docs.xbox.com/fr/reference/system/xmem/functions/xmemmapphysicalpages.md)
- [Query](https://docs.xbox.com/fr/reference/system/dstorage/interfaces/IDStorageQueueX/methods/idstoragequeuex_query.md)
- [PFVirtualCurrencyRechargeTime](https://docs.xbox.com/fr/services/playfab/api-references/c/pftypes/structs/pfvirtualcurrencyrechargetime.md)
