HvCallStartVirtualProcessor

HvCallStartVirtualProcessor 是启动虚拟处理器的启发式方法。 它在功能上等效于传统的基于 INIT 的方法,不同之处在于 VP 可以从所需的注册状态开始。

这是在非零 VTL 中启动 VP 的唯一方法。

接口

HV_STATUS
HvCallStartVirtualProcessor(
   _In_ HV_PARTITION_ID PartitionId,
   _In_ HV_VP_INDEX VpIndex,
   _In_ HV_VTL TargetVtl,
   _In_ HV_INITIAL_VP_CONTEXT VpContext
   );

调用代码

0x0099 (简单)

输入参数

Name Offset 尺寸 提供的信息
PartitionId 0 8 Partition
VpIndex 8 4 要启动的 VP 索引。 若要从 APIC ID 获取 VP 索引,请使用 HvCallGetVpIndexFromApicId。
TargetVtl 12 1 目标 VTL
VpContext 16 224 指定 VP 应启动的初始上下文。

返回值

状态代码 错误条件
HV_STATUS_ACCESS_DENIED 访问被拒绝
HV_STATUS_INVALID_PARTITION_ID 指定的分区 ID 无效。
HV_STATUS_INVALID_VP_INDEX 由HV_VP_INDEX指定的虚拟处理器无效。
HV_STATUS_INVALID_REGISTER_VALUE 提供的寄存器值无效。
HV_STATUS_INVALID_VP_STATE 虚拟处理器在指示作的性能时未处于正确的状态。
HV_STATUS_INVALID_PARTITION_STATE 指定的分区未处于“活动”状态。
HV_STATUS_INVALID_VTL_STATE VTL 状态与请求的作冲突。

另请参阅

HV_INITIAL_VP_CONTEXT