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

Mapeia páginas físicas na memória virtual.

<a id="syntaxSection" />

## Sintaxe

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

<a id="parametersSection" />

### Parâmetros

\**VirtualAddressArray*   \_In\_\
Tipo: PVOID

A matriz de endereços virtuais nos quais as páginas devem ser mapeadas. Esse parâmetro não pode ser definido como `NULL`. Use [XMemVirtualAlloc](/pt-BR/reference/system/xmem/functions/xmemvirtualalloc) com `MEM_RESERVE` e `XMEM_MAPPABLE` para reservar um intervalo de endereços de memória a ser usado com **XMemMapPhysicalPagesScatter**. Os endereços virtuais reservados também devem ser criados com páginas de 64k por meio da opção `MEM_64K_PAGES` com [XMemVirtualAlloc](/pt-BR/reference/system/xmem/functions/xmemvirtualalloc).

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

O número de entradas em *PageArray* e *VirtualAddressArray*. Somente páginas de 64k reservadas por meio de [XMemVirtualAlloc](/pt-BR/reference/system/xmem/functions/xmemvirtualalloc) usando a opção MEM\_64K\_PAGES têm suporte.

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

A matriz de PFNs (números de quadros de página) que representam as páginas físicas a serem mapeadas. Esse parâmetro pode ser definido como `NULL`. Se *PageArray* for definido como `NULL`, essa função executará uma operação de desmapeamento.  Se uma entrada individual na matriz for definida como `NULL`, o endereço virtual correspondente será desmapeado.

<a id="retvalSection" />

### Valor retornado

Tipo: BOOL

Retorna `TRUE` se o mapeamento tiver êxito; caso contrário, `FALSE` se houver uma falha de mapeamento.

<a id="remarksSection" />

### Comentários

Essa função trata `VirtualAddressArray` e `PageArray` como matrizes paralelas com o mesmo comprimento, conforme especificado por `NumberOfPages`. Cada endereço virtual em um elemento de `VirtualAddressArray` é mapeado ou desmapeado dependendo de `PageArray`:

* Se um elemento de `PageArray` for definido como um PFN, o endereço virtual no elemento correspondente de `VirtualAddressArray` será mapeado para esse PFN.
* Se um elemento de `PageArray` for definido como `NULL`, o endereço virtual no elemento correspondente de `VirtualAddressArray` será desmapeado.
* Se `PageArray` for definido como `NULL`, todos os endereços virtuais em `VirtualAddressArray` serão desmapeados.

Para obter o melhor desempenho, endereços virtuais dentro da mesma janela de 2 MB (em tamanho e alinhamento) devem ser fornecidos consecutivamente e em ordem crescente.  Isso permite que o sistema operacional examine oportunisticamente adiante e determine se pode adiar algumas operações que atuam na granularidade de página da CPU até o final do grupo. Para obter mais informações sobre como mapear páginas físicas para endereços virtuais, confira [Trabalhando com o gerenciador de memória do Game OS do Microsoft GDK](/pt-BR/build/console-features/memory/system-memory-working).

<a id="requirementsSection" />

## Requisitos

**Cabeçalho:** xmem.h

**Biblioteca:** xmem.lib

**Plataformas com suporte:** consoles da família XBOX One e consoles XBOX Series

<a id="seealsoSection" />

## Confira também

[XMemVirtualAlloc](/pt-BR/reference/system/xmem/functions/xmemvirtualalloc)\
[XMem](/pt-BR/reference/system/xmem/xmem_members)


## Related topics

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