WHvMapGpaRange

파티션의 게스트 실제 주소 공간 범위를 호출자 프로세스의 메모리에 매핑합니다.

문법

// Guest physical or virtual address
typedef UINT64 WHV_GUEST_PHYSICAL_ADDRESS;
typedef UINT64 WHV_GUEST_VIRTUAL_ADDRESS;


// Flags used by WHvMapGpaRange
typedef enum WHV_MAP_GPA_RANGE_FLAGS
{
    WHvMapGpaRangeFlagNone              = 0x00000000,
    WHvMapGpaRangeFlagRead              = 0x00000001,
    WHvMapGpaRangeFlagWrite             = 0x00000002,
    WHvMapGpaRangeFlagExecute           = 0x00000004,
    WHvMapGpaRangeFlagTrackDirtyPages   = 0x00000008,
} WHV_MAP_GPA_RANGE_FLAGS;

// Enables bitwise operators on the WHV_MAP_GPA_RANGE_FLAGS enumeration.
DEFINE_ENUM_FLAG_OPERATORS(WHV_MAP_GPA_RANGE_FLAGS);

HRESULT
WINAPI
WHvMapGpaRange(
    _In_ WHV_PARTITION_HANDLE Partition,
    _In_ VOID* SourceAddress,
    _In_ WHV_GUEST_PHYSICAL_ADDRESS GuestAddress,
    _In_ UINT64 SizeInBytes,
    _In_ WHV_MAP_GPA_RANGE_FLAGS Flags
    );

Parameters

Partition

파티션 개체에 대한 핸들입니다.

SourceAddress

매핑의 원본인 호출자 프로세스에서 메모리 영역의 페이지 정렬 주소를 지정합니다.

GuestAddress

VM의 실제 주소 공간에서 대상 주소를 지정합니다.

SizeInBytes

매핑할 바이트 수를 지정합니다.

Flags

매핑에 대한 액세스 플래그를 지정합니다.

반환 값

함수가 성공하면 반환 값은 .입니다 S_OK.

Remarks

파티션의 GPA 공간에서 범위에 대한 매핑을 만들면 호출자 프로세스의 영역이 해당 범위에 대한 지원 메모리로 설정됩니다. 이 작업은 지정된 GPA 페이지에 대한 이전 매핑을 대체합니다.

Requirements

요구 사항 Value
지원되는 최소 Windows Windows 10, 버전 1803(x64); Windows 11 버전 24H2, 빌드 26100.3915(Arm64)
Header WinHvPlatform.h
라이브러리 WinHvPlatform.lib
동적 링크 라이브러리 (DLL) WinHvPlatform.dll
아키텍처 x64, Arm64

참고하십시오