Skip to main content

XMemMapPhysicalPagesScatter

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

구문

매개 변수

*VirtualAddressArray   _In_
형식: PVOID
페이지를 매핑할 가상 주소의 배열입니다. 이 매개 변수는 NULL로 설정할 수 없습니다. XMemMapPhysicalPagesScatter와 함께 사용할 메모리 주소 범위를 예약하려면 MEM_RESERVEXMEM_MAPPABLE을 사용하여 XMemVirtualAlloc을 사용합니다. 예약된 가상 주소는 XMemVirtualAllocMEM_64K_PAGES 옵션을 통해 64k 페이지로도 만들어져야 합니다. NumberOfPages   _In_
형식: ULONG_PTR
PageArrayVirtualAddressArray의 항목 수입니다. MEM_64K_PAGES 옵션을 사용하여 XMemVirtualAlloc을 통해 예약된 64k 페이지만 지원됩니다. PageArray   _In_reads_opt_(NumberOfPages)
형식: PULONG_PTR
매핑할 물리적 페이지를 나타내는 페이지 프레임 번호(PFN) 배열입니다. 이 매개 변수는 NULL로 설정할 수 있습니다. PageArrayNULL로 설정되면 이 함수는 매핑 해제 작업을 수행합니다. 배열의 개별 항목이 NULL로 설정되면 해당 가상 주소가 매핑 해제됩니다.

반환 값

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

설명

이 함수는 NumberOfPages로 지정된 대로 VirtualAddressArrayPageArray를 동일한 길이를 갖는 병렬 배열로 취급합니다. VirtualAddressArray의 각 배열 요소의 각 가상 주소는 PageArray에 따라 매핑되거나 매핑 해제됩니다.
  • PageArray의 배열 요소가 PFN으로 설정되면 VirtualAddressArray의 해당 배열 요소의 가상 주소가 해당 PFN에 매핑됩니다.
  • PageArray의 배열 요소가 NULL로 설정되면 VirtualAddressArray의 해당 배열 요소의 가상 주소가 매핑 해제됩니다.
  • PageArrayNULL로 설정되면 VirtualAddressArray의 모든 가상 주소가 매핑 해제됩니다.
성능을 최적화하려면 동일한 2MB 창(크기 및 정렬 모두) 내의 가상 주소를 연속적으로 오름차순으로 제공해야 합니다. 이렇게 하면 OS가 기회주의적으로 미리 살펴보고 CPU 페이지 세분성으로 작동하는 일부 작업을 그룹의 끝까지 연기할 수 있는지 판단할 수 있습니다. 물리적 페이지를 가상 주소에 매핑하는 방법에 대한 자세한 내용은 Microsoft GDK 게임 OS 메모리 관리자 작업을 참조하세요.

요구 사항

헤더: xmem.h 라이브러리: xmem.lib 지원 플랫폼: XBOX One 제품군 콘솔 및 XBOX Series 콘솔

함께 보기

XMemVirtualAlloc
XMem
마지막 수정일 2026년 8월 24일