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

물리적 페이지를 가상 메모리에 매핑합니다.

<a id="syntaxSection" />

## 구문

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

<a id="parametersSection" />

### 매개 변수

\**VirtualAddressArray*   \_In\_\
형식: PVOID

페이지를 매핑할 가상 주소의 배열입니다. 이 매개 변수는 `NULL`로 설정할 수 없습니다. **XMemMapPhysicalPagesScatter**와 함께 사용할 메모리 주소 범위를 예약하려면 `MEM_RESERVE` 및 `XMEM_MAPPABLE`을 사용하여 [XMemVirtualAlloc](/reference/system/xmem/functions/xmemvirtualalloc)을 사용합니다. 예약된 가상 주소는 [XMemVirtualAlloc](/reference/system/xmem/functions/xmemvirtualalloc)의 `MEM_64K_PAGES` 옵션을 통해 64k 페이지로도 만들어져야 합니다.

*NumberOfPages*   \_In\_\
형식: ULONG\_PTR

*PageArray* 및 *VirtualAddressArray*의 항목 수입니다. MEM\_64K\_PAGES 옵션을 사용하여 [XMemVirtualAlloc](/reference/system/xmem/functions/xmemvirtualalloc)을 통해 예약된 64k 페이지만 지원됩니다.

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

매핑할 물리적 페이지를 나타내는 페이지 프레임 번호(PFN) 배열입니다. 이 매개 변수는 `NULL`로 설정할 수 있습니다. *PageArray*가 `NULL`로 설정되면 이 함수는 매핑 해제 작업을 수행합니다. 배열의 개별 항목이 `NULL`로 설정되면 해당 가상 주소가 매핑 해제됩니다.

<a id="retvalSection" />

### 반환 값

형식: BOOL

매핑이 성공하면 `TRUE`를 반환하고, 매핑 실패가 있는 경우 `FALSE`를 반환합니다.

<a id="remarksSection" />

### 설명

이 함수는 `NumberOfPages`로 지정된 대로 `VirtualAddressArray`와 `PageArray`를 동일한 길이를 갖는 병렬 배열로 취급합니다. `VirtualAddressArray`의 각 배열 요소의 각 가상 주소는 `PageArray`에 따라 매핑되거나 매핑 해제됩니다.

* `PageArray`의 배열 요소가 PFN으로 설정되면 `VirtualAddressArray`의 해당 배열 요소의 가상 주소가 해당 PFN에 매핑됩니다.
* `PageArray`의 배열 요소가 `NULL`로 설정되면 `VirtualAddressArray`의 해당 배열 요소의 가상 주소가 매핑 해제됩니다.
* `PageArray`가 `NULL`로 설정되면 `VirtualAddressArray`의 모든 가상 주소가 매핑 해제됩니다.

성능을 최적화하려면 동일한 2MB 창(크기 및 정렬 모두) 내의 가상 주소를 연속적으로 오름차순으로 제공해야 합니다. 이렇게 하면 OS가 기회주의적으로 미리 살펴보고 CPU 페이지 세분성으로 작동하는 일부 작업을 그룹의 끝까지 연기할 수 있는지 판단할 수 있습니다. 물리적 페이지를 가상 주소에 매핑하는 방법에 대한 자세한 내용은 [Microsoft GDK 게임 OS 메모리 관리자 작업](/build/console-features/memory/system-memory-working)을 참조하세요.

<a id="requirementsSection" />

## 요구 사항

**헤더:** xmem.h

**라이브러리:** xmem.lib

**지원 플랫폼:** XBOX One 제품군 콘솔 및 XBOX Series 콘솔

<a id="seealsoSection" />

## 함께 보기

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


## Related topics

- [XMemMapPhysicalPages](/ko/reference/system/xmem/functions/xmemmapphysicalpages.md)
- [Microsoft GDK Game OS 메모리 관리자 사용](/ko/build/console-features/memory/system-memory-working.md)
- [XMemFreePhysicalPages](/ko/reference/system/xmem/functions/xmemfreephysicalpages.md)
- [Map](/ko/reference/graphics/d3d12/interfaces/id3d12resource/methods/id3d12resource_map_public.md)
- [ApuMapApuAddress](/ko/reference/audio/apu/functions/apumapapuaddress.md)
