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

Указывает целевой адрес в физическом адресном пространстве виртуальной машины.

SizeInBytes

Указывает число байтов, которые необходимо сопоставить.

Flags

Указывает флаги доступа для сопоставления.

Возвращаемое значение

Если функция выполнена успешно, возвращается S_OKзначение.

Remarks

Создание сопоставления для диапазона в пространстве GPA секции задает регион в процессе вызывающего объекта в качестве резервной памяти для этого диапазона. Операция заменяет все предыдущие сопоставления для указанных страниц GPA.

Требования

Requirement Ценность
Минимальный поддерживаемый Windows Windows 10 версии 1803 (x64); Windows 11 версии 24H2, сборка 26100.3915 (Arm64)
Header WinHvPlatform.h
Библиотека WinHvPlatform.lib
DLL WinHvPlatform.dll
Architecture x64, Arm64

См. также