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 范围 |