HvCallStartVirtualProcessor
HvCallStartVirtualProcessor は、仮想プロセッサを起動する有効なメソッドです。 これは従来の INIT ベースのメソッドと機能的に同等です。ただし、VP は目的のレジスタ状態で始め得るというのを除いてです。
これは、0 以外の 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
(Simple)
入力パラメーター
名前 | Offset | サイズ | 情報提供済み |
---|---|---|---|
PartitionId |
0 | 8 | Partition |
VpIndex |
8 | 4 | 開始する VP インデックス。 APIC ID から VP インデックスを取得するには、HvGetVpIndexFromApicId を使用します。 |
TargetVtl |
12 | 1 | ターゲット VTL |
VpContext |
16 | 224 | VP を開始する最初のコンテキストを指定します。 |
戻り値
status code | エラー条件 |
---|---|
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 の状態が、要求された操作と矛盾しています。 |