Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Сопоставляет диапазон гостевого физического адресного пространства секции с памятью в указанном процессе узла.
Синтаксис
// Guest physical address
typedef UINT64 WHV_GUEST_PHYSICAL_ADDRESS;
// Flags used by WHvMapGpaRange/WHvMapGpaRange2
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
WHvMapGpaRange2(
_In_ WHV_PARTITION_HANDLE Partition,
_In_ HANDLE Process,
_In_ VOID* SourceAddress,
_In_ WHV_GUEST_PHYSICAL_ADDRESS GuestAddress,
_In_ UINT64 SizeInBytes,
_In_ WHV_MAP_GPA_RANGE_FLAGS Flags
);
Parameters
Partition
Дескриптор объекта секции.
Process
Дескриптор процесса узла, адресное пространство которого содержит область памяти, определяемую по SourceAddress. Дескриптор должен предоставить PROCESS_VM_READи PROCESS_VM_WRITEPROCESS_VM_OPERATION получить доступ к процессу.
SourceAddress
Задает адрес, выровненный по страницам, в адресном пространстве процесса, определяемого Processв области памяти, которая является источником сопоставления.
GuestAddress
Указывает целевой адрес в физическом адресном пространстве виртуальной машины.
SizeInBytes
Указывает число байтов, которые необходимо сопоставить.
Flags
Указывает флаги доступа для сопоставления.
Возвращаемое значение
Если функция выполнена успешно, возвращается S_OKзначение.
Если исходный регион или диапазон гостевых физических адресов не выровнен по страницам, имеет нулевой размер или описывает диапазон переполнения, функция возвращается E_INVALIDARG. Функция также возвращает значение E_INVALIDARGFlags или сочетание разрешений доступа, которые нельзя применить к странице.
Remarks
Функция WHvMapGpaRange2 — это расширенная форма WHvMapGpaRange.
WHvMapGpaRange В то время как всегда использует адресное пространство вызывающего процесса в качестве источника сопоставления, WHvMapGpaRange2 принимает явный дескриптор Process и использует адресное пространство этого процесса. Это позволяет стеку виртуализации вернуть гостевую физическую память секции с памятью, принадлежащей другому процессу узла.
Создание сопоставления для диапазона в пространстве GPA секции задает регион в исходном процессе в качестве резервной памяти для этого диапазона. Операция заменяет все предыдущие сопоставления для указанных страниц GPA.
Чтобы удалить сопоставление, созданное с помощью WHvMapGpaRange2вызова WHvUnmapGpaRange.
Требования
| Requirement | Ценность |
|---|---|
| Минимальный поддерживаемый Windows | Windows 10 версии 20H2 (x64); Windows 11 версии 24H2, сборка 26100.3915 (Arm64) |
| Header | WinHvPlatform.h |
| Библиотека | WinHvPlatform.lib |
| DLL | WinHvPlatform.dll |
| Architecture | x64, Arm64 |