Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Hypervisor menggunakan bagian dari halaman bantuan VP untuk memfasilitasi komunikasi dengan kode yang berjalan dalam VTL yang lebih tinggi dari VTL0. Setiap VTL memiliki struktur kontrolnya sendiri (kecuali VTL0).
Informasi berikut dikomunikasikan menggunakan halaman kontrol:
- Alasan entri VTL.
- Bendera yang menunjukkan bahwa VINA sedang dinyatakan.
- Nilai untuk mendaftar untuk dimuat setelah pengembalian VTL.
Sintaks
typedef enum
{
// This reason is reserved and is not used.
HvVtlEntryReserved = 0,
// Indicates entry due to a VTL call from a lower VTL.
HvVtlEntryVtlCall = 1,
// Indicates entry due to an interrupt targeted to the VTL.
HvVtlEntryInterrupt = 2
} HV_VTL_ENTRY_REASON;
typedef struct
{
// The hypervisor updates the entry reason with an indication as to why
// the VTL was entered on the virtual processor.
HV_VTL_ENTRY_REASON EntryReason;
// This flag determines whether the VINA interrupt line is asserted.
union
{
UINT8 AsUINT8;
struct
{
UINT8 VinaAsserted :1;
UINT8 VinaReservedZ :7;
};
} VinaStatus;
UINT8 ReservedZ00;
UINT16 ReservedZ01;
// A guest updates the VtlReturn* fields to provide the register values
// to restore on VTL return. The specific register values that are
// restored will vary based on whether the VTL is 32-bit or 64-bit.
union
{
struct
{
UINT64 VtlReturnX64Rax;
UINT64 VtlReturnX64Rcx;
};
struct
{
UINT32 VtlReturnX86Eax;
UINT32 VtlReturnX86Ecx;
UINT32 VtlReturnX86Edx;
UINT32 ReservedZ1;
};
};
} HV_VP_VTL_CONTROL;