Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
HvCallStartVirtualProcessor is an enlightened method for starting a virtual processor. It is functionally equivalent to traditional INIT-based methods, except that the VP can start with a desired register state.
This is the only method for starting a VP in a non-zero VTL.
Interface
HV_STATUS
HvCallStartVirtualProcessor(
_In_ HV_PARTITION_ID PartitionId,
_In_ HV_VP_INDEX VpIndex,
_In_ HV_VTL TargetVtl,
_In_ HV_INITIAL_VP_CONTEXT VpContext
);
Call Code
0x0099
(Simple)
Input Parameters
Name | Offset | Size | Information Provided |
---|---|---|---|
PartitionId |
0 | 8 | Partition |
VpIndex |
8 | 4 | VP Index to start. To get the VP index from an APIC ID, use HvGetVpIndexFromApicId. |
TargetVtl |
12 | 1 | Target VTL |
VpContext |
16 | 224 | Specifies the initial context in which the VP should start. |
Return Values
Status code | Error Condition |
---|---|
HV_STATUS_ACCESS_DENIED |
Access denied |
HV_STATUS_INVALID_PARTITION_ID |
The specified partition ID is invalid. |
HV_STATUS_INVALID_VP_INDEX |
The virtual processor specified by HV_VP_INDEX is invalid. |
HV_STATUS_INVALID_REGISTER_VALUE |
The supplied register value is invalid. |
HV_STATUS_INVALID_VP_STATE |
A virtual processor is not in the correct state for the performance of the indicated operation. |
HV_STATUS_INVALID_PARTITION_STATE |
The specified partition is not in the “active” state. |
HV_STATUS_INVALID_VTL_STATE |
The VTL state conflicts with the requested operation. |