HvCallStartVirtualProcessor
HvCallStartVirtualProcessor 是啟動虛擬處理器的啟用 rms 方法。 它在功能上相當於傳統的 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
(簡單的)
輸入參數
名稱 | Offset | 大小 | 提供的資訊 |
---|---|---|---|
PartitionId |
0 | 8 | 資料分割 |
VpIndex |
8 | 4 | 要啟動的 VP 索引。 若要從 APIC 識別碼取得 VP 索引,請使用 HvGetVpIndexFromApicId。 |
TargetVtl |
12 | 1 | 目標 VTL |
VpContext |
16 | 224 | 指定要開始 VP 的初始內容。 |
傳回值
狀態碼 | 錯誤狀況 |
---|---|
HV_STATUS_ACCESS_DENIED |
拒絕存取 |
HV_STATUS_INVALID_PARTITION_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 狀態與要求的操作發生衝突。 |