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

## Syntax

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

<a id="parametersSection" />

### Parameters

\**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" />

### Return value

型: BOOL

マッピングが成功した場合は `TRUE` を返します。それ以外の場合、マッピング失敗の場合は `FALSE`。

<a id="remarksSection" />

### Remarks

この関数は、`VirtualAddressArray` と `PageArray` を、`NumberOfPages` で指定される同じ長さの並列配列として扱います。`VirtualAddressArray` の配列要素にある各仮想アドレスは、`PageArray` に応じてマップまたはアンマップされます:

* `PageArray` 内の配列要素が PFN に設定されている場合、`VirtualAddressArray` 内の対応する配列要素にある仮想アドレスは、その PFN にマップされます。
* `PageArray` 内の配列要素が `NULL` に設定されている場合、`VirtualAddressArray` 内の対応する配列要素にある仮想アドレスはアンマップされます。
* `PageArray` が `NULL` に設定されている場合、`VirtualAddressArray` 内のすべての仮想アドレスがアンマップされます。

最適なパフォーマンスを得るには、同じ 2 MB のウィンドウ (サイズとアライメントの両方) 内の仮想アドレスを、連続して昇順に指定する必要があります。これにより、OS が積極的に先読みを行い、CPU ページ粒度で動作する一部の操作をグループの最後まで延期できるかどうかを判定できます。仮想アドレスへの物理ページのマッピングの詳細については、[Working with the Microsoft GDK Game OS memory manager](/build/console-features/memory/system-memory-working) を参照してください。

<a id="requirementsSection" />

## Requirements

**ヘッダー:** xmem.h

**ライブラリ:** xmem.lib

**サポートされているプラットフォーム:** XBOX One ファミリー本体および XBOX Series 本体

<a id="seealsoSection" />

## See also

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


## Related topics

- [XMemMapPhysicalPages](/ja-jp/reference/system/xmem/functions/xmemmapphysicalpages.md)
- [Microsoft GDK ゲーム OS メモリ マネージャーの使用](/ja-jp/build/console-features/memory/system-memory-working.md)
- [XMemFreePhysicalPages](/ja-jp/reference/system/xmem/functions/xmemfreephysicalpages.md)
- [Map](/ja-jp/reference/graphics/d3d12/interfaces/id3d12resource/methods/id3d12resource_map_public.md)
- [ApuMapApuAddress](/ja-jp/reference/audio/apu/functions/apumapapuaddress.md)
