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