パーティションのゲスト物理アドレス空間の範囲を、呼び出し元のプロセスのメモリにマップします。
構文
// 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
| 要件 | 価値 |
|---|---|
| サポートされている最小Windows | Windows 10バージョン 1803 (x64);Windows 11、バージョン 24H2、ビルド 26100.3915 (Arm64) |
| Header | WinHvPlatform.h |
| 図書館 | WinHvPlatform.lib |
| DLL | WinHvPlatform.dll |
| Architecture | x64、Arm64 |