HvCallEnableVpVtl を使用すると、VTL を VP で実行できます。 このハイパーコールは、VTL を有効にして使用するために HvCallEnablePartitionVtl と組み合わせて使用する必要があります。 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
);
制約
一般に、VTL は上位の VTL でのみ有効にできます。 この規則には 1 つの例外があります。パーティションで有効になっている VTL が最も高いほど、より高いターゲット VTL を有効にすることができます。
ターゲット VTL が VP で有効になったら、VTL を有効にするための他のすべての呼び出しが等しいかそれ以上の VTL から送信される必要があります。 VP に対して既に有効になっている VTL を有効にするために呼び出された場合、このハイパーコールは失敗します。
呼び出しコード
0x000F (単純)
パラメーターの入力
x64 レイアウト
| 名前 | オフセット | サイズ | 提供される情報 |
|---|---|---|---|
TargetPartitionId |
0 | 八 | この要求の対象となるパーティションのパーティション ID を指定します。 |
VpIndex |
八 | 4 | VTL を有効にする仮想プロセッサのインデックスを指定します。 |
TargetVtl |
12 | 1 | このハイパーコールで有効にする VTL を指定します。 |
| RsvdZ | 13 | 3 | |
VpVtlContext |
16 | 224 | ターゲット VTL への最初のエントリで VP を開始する必要がある初期コンテキストを指定します。 |
ARM64 レイアウト
| 名前 | オフセット | サイズ | 提供される情報 |
|---|---|---|---|
TargetPartitionId |
0 | 八 | この要求の対象となるパーティションのパーティション ID を指定します。 |
VpIndex |
八 | 4 | VTL を有効にする仮想プロセッサのインデックスを指定します。 |
TargetVtl |
12 | 1 | このハイパーコールで有効にする VTL を指定します。 |
| RsvdZ | 13 | 3 | |
VpVtlContext |
16 | 72 | ターゲット VTL への最初のエントリで VP を開始する必要がある初期コンテキストを指定します。 |