WHvMapGpaRange2

Bir bölümün konuk fiziksel adres alanı aralığını belirtilen konak işlemindeki belleğe eşler.

Sözdizimi

// 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

Bölüm nesnesi için tanıtıcı.

Process

Adres alanı tarafından SourceAddresstanımlanan bellek bölgesini içeren konak işleminin işleyicisi. Tanıtıcı, bu işleme , PROCESS_VM_WRITEve PROCESS_VM_OPERATION erişimi vermelidirPROCESS_VM_READ.

SourceAddress

Eşlemenin kaynağı olan bellek bölgesinin tarafından tanımlanan Processişlemin adres alanında sayfaya hizalanmış adresi belirtir.

GuestAddress

VM'nin fiziksel adres alanında hedef adresi belirtir.

SizeInBytes

Eşlenecek bayt sayısını belirtir.

Flags

Eşleme için erişim bayraklarını belirtir.

Dönüş Değeri

İşlev başarılı olursa, dönüş değeri olur S_OK.

Kaynak bölge veya konuk fiziksel adres aralığı sayfaya hizalanmamışsa, boyutu sıfır ise veya taşan bir aralığı açıklıyorsa işlev döndürür E_INVALIDARG. İşlev ayrıca sayfaya uygulanamayan erişim izinlerinin bir değerini veya birleşimini belirtirse Flags de döndürürE_INVALIDARG.

Açıklamalar

WHvMapGpaRange2 işlevi genişletilmiş biçimidirWHvMapGpaRange. Eşlemenin WHvMapGpaRange kaynağı olarak her zaman çağrı işleminin adres alanını kullanır, WHvMapGpaRange2 açık Process bir tanıtıcı kabul eder ve bu işlemin adres alanını kullanır. Bu, bir sanallaştırma yığınının farklı bir konak işlemine ait bellekle bir bölümün konuk fiziksel belleğini geri döndürmesini sağlar.

Bir bölümün GPA alanında bir aralık için eşleme oluşturmak, kaynak işlemdeki bir bölgeyi bu aralığın yedekleme belleği olarak ayarlar. İşlem, belirtilen GPA sayfaları için önceki eşlemelerin yerini alır.

ile WHvMapGpaRange2oluşturulan bir eşlemeyi kaldırmak için çağrısında bulunur WHvUnmapGpaRange.

Requirements

Requirement Değer
Desteklenen en düşük Windows Windows 10, sürüm 20H2 (x64); Windows 11, sürüm 24H2, derleme 26100.3915 (Arm64)
Header WinHvPlatform.h
Kütüphane WinHvPlatform.lib
DLL WinHvPlatform.dll
Architecture x64, Arm64

Ayrıca bakınız