Skip to main content

XMemMapPhysicalPages

XMemAllocatePhysicalPages によって割り当てられたページを仮想アドレス空間にマップします。

Syntax

Parameters

VirtualAddress   _In_
型: PVOID
ページをマップするアドレス。 NumberOfPages   _In_
型: ULONG_PTR
PageArray 内のエントリ数。 PageArray   _In_reads_opt_(NumberOfPages)
型: PULONG_PTR
マップするページを表すページ フレーム番号の配列。

Return value

型: PVOID 物理ページがマップされた仮想アドレス。マッピングに失敗した場合は NULL。 マッピング失敗の場合、拡張エラー情報を取得するには GetLastError を呼び出します。

Remarks

仮想アドレス範囲は、XMemVirtualAllocMEM_RESERVE、ページ サイズ MEM_64K_PAGES または MEM_2MB_PAGES、および XMEM_MAPPABLE フラグとともに呼び出して、あらかじめ予約しておく必要があります。VirtualAlloc によって行われた MEM_PHYSICAL アドレス予約は、このメモリのマッピングには使用できません。 仮想アドレス範囲にすでにマップされたページがある場合、それらはアンマップされます。さらに、メモリ領域をデコミットするために PageArray に NULL を指定することもできます。 XMemMapPhysicalPages を使用して、同じ物理ページを仮想アドレス空間で複数回マップできます。ページが複数回マップされる場合、複数のマッピングは同一のキャッシュ属性を指定する必要があります (キャッシュ属性が指定されない場合は CPU コヒーレントが暗黙的で、それ以外の場合は PAGE_NOCACHE または PAGE_WRITECOMBINE のいずれかです)。
MEM_2MB_PAGES で予約されたメモリに物理ページをマップする場合、物理ページは XMEM_2MB_CLUSTERS で割り当てられている必要があります。PageArray パラメーターには、各 2MB クラスターの最初の物理ページのみを含める必要があります。
例:

Requirements

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

See also

XMem リファレンス
XMemVirtualAlloc
VirtualFree
XMemFreePhysicalPages
最終更新日 2026年8月31日