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

# XMemMapPhysicalPagesScatter

> XMemMapPhysicalPagesScatter

# XMemMapPhysicalPagesScatter

Mappe des pages physiques dans la mémoire virtuelle.

<a id="syntaxSection" />

## Syntaxe

```cpp theme={null}
BOOL XMemMapPhysicalPagesScatter(  
         PVOID *VirtualAddressArray,  
         ULONG_PTR NumberOfPages,  
         PULONG_PTR PageArray  
)  
```

<a id="parametersSection" />

### Paramètres

\**VirtualAddressArray*   \_In\_\
Type : PVOID

Tableau des adresses virtuelles auxquelles les pages doivent être mappées. Ce paramètre ne peut pas être défini sur `NULL`. Utilisez [XMemVirtualAlloc](/fr/reference/system/xmem/functions/xmemvirtualalloc) avec `MEM_RESERVE` et `XMEM_MAPPABLE` pour réserver une plage d'adresses mémoire à utiliser avec **XMemMapPhysicalPagesScatter**. Les adresses virtuelles réservées doivent également être créées avec des pages de 64 Ko via l'option `MEM_64K_PAGES` de [XMemVirtualAlloc](/fr/reference/system/xmem/functions/xmemvirtualalloc).

*NumberOfPages*   \_In\_\
Type : ULONG\_PTR

Nombre d'entrées dans *PageArray* et *VirtualAddressArray*. Seules les pages de 64 Ko réservées via [XMemVirtualAlloc](/fr/reference/system/xmem/functions/xmemvirtualalloc) à l'aide de l'option MEM\_64K\_PAGES sont prises en charge.

*PageArray*   \_In\_reads\_opt\_(NumberOfPages)\
Type : PULONG\_PTR

Tableau de numéros de cadre de page (PFN) représentant les pages physiques à mapper. Ce paramètre peut être défini sur `NULL`. Si *PageArray* est défini sur `NULL`, cette fonction effectue une opération de démappage.  Si une entrée individuelle du tableau est définie sur `NULL`, l'adresse virtuelle correspondante est démappée.

<a id="retvalSection" />

### Valeur renvoyée

Type : BOOL

Renvoie `TRUE` si le mappage a réussi ; sinon, `FALSE` en cas d'échec du mappage.

<a id="remarksSection" />

### Remarques

Cette fonction traite `VirtualAddressArray` et `PageArray` comme des tableaux parallèles de même longueur, spécifiée par `NumberOfPages`. Chaque adresse virtuelle d'un élément de `VirtualAddressArray` est mappée ou démappée en fonction de `PageArray` :

* Si un élément de `PageArray` est défini sur un PFN, l'adresse virtuelle de l'élément correspondant de `VirtualAddressArray` est mappée sur ce PFN.
* Si un élément de `PageArray` est défini sur `NULL`, l'adresse virtuelle de l'élément correspondant de `VirtualAddressArray` est démappée.
* Si `PageArray` est défini sur `NULL`, toutes les adresses virtuelles de `VirtualAddressArray` sont démappées.

Pour des performances optimales, les adresses virtuelles situées dans la même fenêtre de 2 Mo (en taille et en alignement) doivent être fournies de manière consécutive et dans l'ordre croissant.  Cela permet au système d'exploitation d'anticiper de manière opportuniste et de déterminer s'il peut différer jusqu'à la fin du groupe certaines opérations qui s'effectuent à la granularité des pages CPU. Pour plus d'informations sur le mappage de pages physiques vers des adresses virtuelles, consultez [Utilisation du gestionnaire de mémoire de Game OS du Microsoft GDK](/fr/build/console-features/memory/system-memory-working).

<a id="requirementsSection" />

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

<a id="seealsoSection" />

## Voir aussi

[XMemVirtualAlloc](/fr/reference/system/xmem/functions/xmemvirtualalloc)\
[XMem](/fr/reference/system/xmem/xmem_members)


## Related topics

- [XMemMapPhysicalPagesScatter](/reference/system/xmem/functions/xmemmapphysicalpagesscatter.md)
- [XMemMapPhysicalPages](/reference/system/xmem/functions/xmemmapphysicalpages.md)
