Skip to main content

XMemMapPhysicalPagesScatter

物理ページを仮想メモリにマップします。

Syntax

Parameters

*VirtualAddressArray   _In_
型: PVOID
ページをマップする仮想アドレスの配列。このパラメーターを NULL に設定することはできません。XMemMapPhysicalPagesScatter で使用するメモリ アドレス範囲を予約するには、MEM_RESERVEXMEM_MAPPABLE を指定して XMemVirtualAlloc を使用します。予約された仮想アドレスは、XMemVirtualAllocMEM_64K_PAGES オプションを介して 64k ページで作成する必要もあります。 NumberOfPages   _In_
型: ULONG_PTR
PageArray および VirtualAddressArray 内のエントリ数。MEM_64K_PAGES オプションを使用して XMemVirtualAlloc で予約された 64k ページのみサポートされます。 PageArray   _In_reads_opt_(NumberOfPages)
型: PULONG_PTR
マップする物理ページを表すページ フレーム番号 (PFN) の配列。このパラメーターは NULL に設定できます。PageArrayNULL に設定されている場合、この関数はアンマップ操作を実行します。配列内の個々のエントリが NULL に設定されている場合、対応する仮想アドレスがアンマップされます。

Return value

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

Remarks

この関数は、VirtualAddressArrayPageArray を、NumberOfPages で指定される同じ長さの並列配列として扱います。VirtualAddressArray の配列要素にある各仮想アドレスは、PageArray に応じてマップまたはアンマップされます:
  • PageArray 内の配列要素が PFN に設定されている場合、VirtualAddressArray 内の対応する配列要素にある仮想アドレスは、その PFN にマップされます。
  • PageArray 内の配列要素が NULL に設定されている場合、VirtualAddressArray 内の対応する配列要素にある仮想アドレスはアンマップされます。
  • PageArrayNULL に設定されている場合、VirtualAddressArray 内のすべての仮想アドレスがアンマップされます。
最適なパフォーマンスを得るには、同じ 2 MB のウィンドウ (サイズとアライメントの両方) 内の仮想アドレスを、連続して昇順に指定する必要があります。これにより、OS が積極的に先読みを行い、CPU ページ粒度で動作する一部の操作をグループの最後まで延期できるかどうかを判定できます。仮想アドレスへの物理ページのマッピングの詳細については、Working with the Microsoft GDK Game OS memory manager を参照してください。

Requirements

ヘッダー: xmem.h ライブラリ: xmem.lib サポートされているプラットフォーム: XBOX One ファミリー本体および XBOX Series 本体

See also

XMemVirtualAlloc
XMem
最終更新日 2026年8月24日