HvCallFlushGuestPhysicalAddressList

HvCallFlushGuestPhysicalAddressList hypercall 使缓存的GF/L2 GPA到 GPA 映射在二级地址空间的一部分无效。

接口

HV_STATUS
HvCallFlushGuestPhysicalAddressList(
   _In_ HV_SPA AddressSpace,
   _In_ UINT64 Flags,
   _In_reads_(RangeCount) PHV_GPA_PAGE_RANGE GpaRangeList
   );

此 hypercall 只能与处于活动状态的嵌套虚拟化一起使用。 虚拟 TLB 失效操作对所有处理器进行操作。

此调用保证在控件返回到调用方的时间之前,所有刷新的可观测效果都已发生。 如果 TLB 当前处于“锁定”状态,则调用方虚拟处理器将挂起。

此调用采用 L2 GPA 范围列表来刷新。 每个范围都有一个基准 L2 GPA。 由于刷新是使用页面粒度执行的,因此 L2 GPA 的底部 12 位可用于定义范围长度。 这些位对超出范围内初始页) (的其他页数进行编码。 这允许每个条目编码 1 到 4096 页的范围。

调用代码

0x00B0 (Rep)

输入参数

名称 Offset 大小 提供的信息
AddressSpace 0 8 (EPT PML4 表指针) 指定地址空间 ID。
Flags 8 8 RsvdZ

输入列表元素

名称 Offset 大小 提供的信息
GpaRange 0 8 GPA 范围