HvCallEnableVpVtl
HvCallEnableVpVtl 使 VTL 能够在 VP 上运行。 应将此 hypercall 与 HvCallEnablePartitionVtl 结合使用,以启用和使用 VTL。 若要在 VP 上启用 VTL,必须首先为该分区启用 VTL。 此调用不会更改活动 VTL。
接口
HV_STATUS
HvEnableVpVtl(
_In_ HV_PARTITION_ID TargetPartitionId,
_In_ HV_VP_INDEX VpIndex,
_In_ HV_VTL TargetVtl,
_In_ HV_INITIAL_VP_CONTEXT VpVtlContext
);
限制
通常,VTL 只能由更高的 VTL 启用。 此规则有一个例外:为分区启用的最高 VTL 可实现更高的目标 VTL。
在 VP 上启用目标 VTL 后,启用 VTL 的所有其他调用必须来自相等或更高的 Vtl。 如果调用来启用已为 VP 启用的 VTL,此 hypercall 将失败。
调用代码
0x000F
(简单)
输入参数
名称 | Offset | 大小 | 提供的信息 |
---|---|---|---|
TargetPartitionId |
0 | 8 | 提供此请求的分区的分区 ID。 |
VpIndex |
8 | 4 | 指定要在其上启用 VTL 的虚拟处理器的索引。 |
TargetVtl |
12 | 1 | 指定此 hypercall 要启用的 VTL。 |
RsvdZ | 13 | 3 | |
VpVtlContext |
16 | 224 | 指定初始上下文,其中副总裁应该从第一个条目开始到目标 VTL。 |