HyperDbg Debugger
Loading...
Searching...
No Matches
HypervTlfs.h
Go to the documentation of this file.
1/* SPDX-License-Identifier: GPL-2.0 */
2
3/*
4 * Header from: https://github.com/torvalds/linux/blob/master/arch/x86/include/asm/hyperv-tlfs.h
5 * This file contains definitions from Hyper-V Hypervisor Top-Level Functional
6 * Specification (TLFS):
7 * https://docs.microsoft.com/en-us/virtualization/hyper-v-on-windows/reference/tlfs
8 */
9
10/*
11 * The below CPUID leaves are present if VersionAndFeatures.HypervisorPresent
12 * is set by CPUID(HvCpuIdFunctionVersionAndFeatures).
13 */
14#define HYPERV_CPUID_VENDOR_AND_MAX_FUNCTIONS 0x40000000
15#define HYPERV_CPUID_INTERFACE 0x40000001
16#define HYPERV_CPUID_VERSION 0x40000002
17#define HYPERV_CPUID_FEATURES 0x40000003
18#define HYPERV_CPUID_ENLIGHTMENT_INFO 0x40000004
19#define HYPERV_CPUID_IMPLEMENT_LIMITS 0x40000005
20#define HYPERV_CPUID_CPU_MANAGEMENT_FEATURES 0x40000007
21#define HYPERV_CPUID_NESTED_FEATURES 0x4000000A
22#define HYPERV_CPUID_ISOLATION_CONFIG 0x4000000C
23
24#define HYPERV_CPUID_VIRT_STACK_INTERFACE 0x40000081
25#define HYPERV_VS_INTERFACE_EAX_SIGNATURE 0x31235356 /* "VS#1" */
26
27#define HYPERV_CPUID_VIRT_STACK_PROPERTIES 0x40000082
28/* Support for the extended IOAPIC RTE format */
29#define HYPERV_VS_PROPERTIES_EAX_EXTENDED_IOAPIC_RTE BIT(2)
30
31#define HYPERV_HYPERVISOR_PRESENT_BIT 0x80000000
32#define HYPERV_CPUID_MIN 0x40000005
33#define HYPERV_CPUID_MAX 0x4000ffff
34
35/*
36 * Group D Features. The bit assignments are custom to each architecture.
37 * On x86/x64 these are HYPERV_CPUID_FEATURES.EDX bits.
38 */
39/* The MWAIT instruction is available (per section MONITOR / MWAIT) */
40#define HV_X64_MWAIT_AVAILABLE BIT(0)
41/* Guest debugging support is available */
42#define HV_X64_GUEST_DEBUGGING_AVAILABLE BIT(1)
43/* Performance Monitor support is available*/
44#define HV_X64_PERF_MONITOR_AVAILABLE BIT(2)
45/* Support for physical CPU dynamic partitioning events is available*/
46#define HV_X64_CPU_DYNAMIC_PARTITIONING_AVAILABLE BIT(3)
47/*
48 * Support for passing hypercall input parameter block via XMM
49 * registers is available
50 */
51#define HV_X64_HYPERCALL_XMM_INPUT_AVAILABLE BIT(4)
52/* Support for a virtual guest idle state is available */
53#define HV_X64_GUEST_IDLE_STATE_AVAILABLE BIT(5)
54/* Frequency MSRs available */
55#define HV_FEATURE_FREQUENCY_MSRS_AVAILABLE BIT(8)
56/* Crash MSR available */
57#define HV_FEATURE_GUEST_CRASH_MSR_AVAILABLE BIT(10)
58/* Support for debug MSRs available */
59#define HV_FEATURE_DEBUG_MSRS_AVAILABLE BIT(11)
60/*
61 * Support for returning hypercall output block via XMM
62 * registers is available
63 */
64#define HV_X64_HYPERCALL_XMM_OUTPUT_AVAILABLE BIT(15)
65/* stimer Direct Mode is available */
66#define HV_STIMER_DIRECT_MODE_AVAILABLE BIT(19)
67
68/*
69 * Implementation recommendations. Indicates which behaviors the hypervisor
70 * recommends the OS implement for optimal performance.
71 * These are HYPERV_CPUID_ENLIGHTMENT_INFO.EAX bits.
72 */
73/*
74 * Recommend using hypercall for address space switches rather
75 * than MOV to CR3 instruction
76 */
77#define HV_X64_AS_SWITCH_RECOMMENDED BIT(0)
78/* Recommend using hypercall for local TLB flushes rather
79 * than INVLPG or MOV to CR3 instructions */
80#define HV_X64_LOCAL_TLB_FLUSH_RECOMMENDED BIT(1)
81/*
82 * Recommend using hypercall for remote TLB flushes rather
83 * than inter-processor interrupts
84 */
85#define HV_X64_REMOTE_TLB_FLUSH_RECOMMENDED BIT(2)
86/*
87 * Recommend using MSRs for accessing APIC registers
88 * EOI, ICR and TPR rather than their memory-mapped counterparts
89 */
90#define HV_X64_APIC_ACCESS_RECOMMENDED BIT(3)
91/* Recommend using the hypervisor-provided MSR to initiate a system RESET */
92#define HV_X64_SYSTEM_RESET_RECOMMENDED BIT(4)
93/*
94 * Recommend using relaxed timing for this partition. If used,
95 * the VM should disable any watchdog timeouts that rely on the
96 * timely delivery of external interrupts
97 */
98#define HV_X64_RELAXED_TIMING_RECOMMENDED BIT(5)
99
100/*
101 * Recommend not using Auto End-Of-Interrupt feature
102 */
103#define HV_DEPRECATING_AEOI_RECOMMENDED BIT(9)
104
105/*
106 * Recommend using cluster IPI hypercalls.
107 */
108#define HV_X64_CLUSTER_IPI_RECOMMENDED BIT(10)
109
110/* Recommend using the newer ExProcessorMasks interface */
111#define HV_X64_EX_PROCESSOR_MASKS_RECOMMENDED BIT(11)
112
113/* Recommend using enlightened VMCS */
114#define HV_X64_ENLIGHTENED_VMCS_RECOMMENDED BIT(14)
115
116/*
117 * CPU management features identification.
118 * These are HYPERV_CPUID_CPU_MANAGEMENT_FEATURES.EAX bits.
119 */
120#define HV_X64_START_LOGICAL_PROCESSOR BIT(0)
121#define HV_X64_CREATE_ROOT_VIRTUAL_PROCESSOR BIT(1)
122#define HV_X64_PERFORMANCE_COUNTER_SYNC BIT(2)
123#define HV_X64_RESERVED_IDENTITY_BIT BIT(31)
124
125/*
126 * Virtual processor will never share a physical core with another virtual
127 * processor, except for virtual processors that are reported as sibling SMT
128 * threads.
129 */
130#define HV_X64_NO_NONARCH_CORESHARING BIT(18)
131
132/* Nested features. These are HYPERV_CPUID_NESTED_FEATURES.EAX bits. */
133#define HV_X64_NESTED_DIRECT_FLUSH BIT(17)
134#define HV_X64_NESTED_GUEST_MAPPING_FLUSH BIT(18)
135#define HV_X64_NESTED_MSR_BITMAP BIT(19)
136
137/*
138 * This is specific to AMD and specifies that enlightened TLB flush is
139 * supported. If guest opts in to this feature, ASID invalidations only
140 * flushes gva -> hpa mapping entries. To flush the TLB entries derived
141 * from NPT, hypercalls should be used (HvFlushGuestPhysicalAddressSpace
142 * or HvFlushGuestPhysicalAddressList).
143 */
144#define HV_X64_NESTED_ENLIGHTENED_TLB BIT(22)
145
146/* HYPERV_CPUID_ISOLATION_CONFIG.EAX bits. */
147#define HV_PARAVISOR_PRESENT BIT(0)
148
149/* HYPERV_CPUID_ISOLATION_CONFIG.EBX bits. */
150#define HV_ISOLATION_TYPE GENMASK(3, 0)
151#define HV_SHARED_GPA_BOUNDARY_ACTIVE BIT(5)
152#define HV_SHARED_GPA_BOUNDARY_BITS GENMASK(11, 6)
153
160
161/* Hyper-V specific model specific registers (MSRs) */
162
163/* MSR used to identify the guest OS. */
164#define HV_X64_MSR_GUEST_OS_ID 0x40000000
165
166/* MSR used to setup pages used to communicate with the hypervisor. */
167#define HV_X64_MSR_HYPERCALL 0x40000001
168
169/* MSR used to provide vcpu index */
170#define HV_REGISTER_VP_INDEX 0x40000002
171
172/* MSR used to reset the guest OS. */
173#define HV_X64_MSR_RESET 0x40000003
174
175/* MSR used to provide vcpu runtime in 100ns units */
176#define HV_X64_MSR_VP_RUNTIME 0x40000010
177
178/* MSR used to read the per-partition time reference counter */
179#define HV_REGISTER_TIME_REF_COUNT 0x40000020
180
181/* A partition's reference time stamp counter (TSC) page */
182#define HV_REGISTER_REFERENCE_TSC 0x40000021
183
184/* MSR used to retrieve the TSC frequency */
185#define HV_X64_MSR_TSC_FREQUENCY 0x40000022
186
187/* MSR used to retrieve the local APIC timer frequency */
188#define HV_X64_MSR_APIC_FREQUENCY 0x40000023
189
190/* Define the virtual APIC registers */
191#define HV_X64_MSR_EOI 0x40000070
192#define HV_X64_MSR_ICR 0x40000071
193#define HV_X64_MSR_TPR 0x40000072
194#define HV_X64_MSR_VP_ASSIST_PAGE 0x40000073
195
196/* Define synthetic interrupt controller model specific registers. */
197#define HV_REGISTER_SCONTROL 0x40000080
198#define HV_REGISTER_SVERSION 0x40000081
199#define HV_REGISTER_SIEFP 0x40000082
200#define HV_REGISTER_SIMP 0x40000083
201#define HV_REGISTER_EOM 0x40000084
202#define HV_REGISTER_SINT0 0x40000090
203#define HV_REGISTER_SINT1 0x40000091
204#define HV_REGISTER_SINT2 0x40000092
205#define HV_REGISTER_SINT3 0x40000093
206#define HV_REGISTER_SINT4 0x40000094
207#define HV_REGISTER_SINT5 0x40000095
208#define HV_REGISTER_SINT6 0x40000096
209#define HV_REGISTER_SINT7 0x40000097
210#define HV_REGISTER_SINT8 0x40000098
211#define HV_REGISTER_SINT9 0x40000099
212#define HV_REGISTER_SINT10 0x4000009A
213#define HV_REGISTER_SINT11 0x4000009B
214#define HV_REGISTER_SINT12 0x4000009C
215#define HV_REGISTER_SINT13 0x4000009D
216#define HV_REGISTER_SINT14 0x4000009E
217#define HV_REGISTER_SINT15 0x4000009F
218
219/*
220 * Synthetic Timer MSRs. Four timers per vcpu.
221 */
222#define HV_REGISTER_STIMER0_CONFIG 0x400000B0
223#define HV_REGISTER_STIMER0_COUNT 0x400000B1
224#define HV_REGISTER_STIMER1_CONFIG 0x400000B2
225#define HV_REGISTER_STIMER1_COUNT 0x400000B3
226#define HV_REGISTER_STIMER2_CONFIG 0x400000B4
227#define HV_REGISTER_STIMER2_COUNT 0x400000B5
228#define HV_REGISTER_STIMER3_CONFIG 0x400000B6
229#define HV_REGISTER_STIMER3_COUNT 0x400000B7
230
231/* Hyper-V guest idle MSR */
232#define HV_X64_MSR_GUEST_IDLE 0x400000F0
233
234/* Hyper-V guest crash notification MSR's */
235#define HV_REGISTER_CRASH_P0 0x40000100
236#define HV_REGISTER_CRASH_P1 0x40000101
237#define HV_REGISTER_CRASH_P2 0x40000102
238#define HV_REGISTER_CRASH_P3 0x40000103
239#define HV_REGISTER_CRASH_P4 0x40000104
240#define HV_REGISTER_CRASH_CTL 0x40000105
241
242/* TSC emulation after migration */
243#define HV_X64_MSR_REENLIGHTENMENT_CONTROL 0x40000106
244#define HV_X64_MSR_TSC_EMULATION_CONTROL 0x40000107
245#define HV_X64_MSR_TSC_EMULATION_STATUS 0x40000108
246
247/* TSC invariant control */
248#define HV_X64_MSR_TSC_INVARIANT_CONTROL 0x40000118
249
250/* Register name aliases for temporary compatibility */
251#define HV_X64_MSR_STIMER0_COUNT HV_REGISTER_STIMER0_COUNT
252#define HV_X64_MSR_STIMER0_CONFIG HV_REGISTER_STIMER0_CONFIG
253#define HV_X64_MSR_STIMER1_COUNT HV_REGISTER_STIMER1_COUNT
254#define HV_X64_MSR_STIMER1_CONFIG HV_REGISTER_STIMER1_CONFIG
255#define HV_X64_MSR_STIMER2_COUNT HV_REGISTER_STIMER2_COUNT
256#define HV_X64_MSR_STIMER2_CONFIG HV_REGISTER_STIMER2_CONFIG
257#define HV_X64_MSR_STIMER3_COUNT HV_REGISTER_STIMER3_COUNT
258#define HV_X64_MSR_STIMER3_CONFIG HV_REGISTER_STIMER3_CONFIG
259#define HV_X64_MSR_SCONTROL HV_REGISTER_SCONTROL
260#define HV_X64_MSR_SVERSION HV_REGISTER_SVERSION
261#define HV_X64_MSR_SIMP HV_REGISTER_SIMP
262#define HV_X64_MSR_SIEFP HV_REGISTER_SIEFP
263#define HV_X64_MSR_VP_INDEX HV_REGISTER_VP_INDEX
264#define HV_X64_MSR_EOM HV_REGISTER_EOM
265#define HV_X64_MSR_SINT0 HV_REGISTER_SINT0
266#define HV_X64_MSR_SINT15 HV_REGISTER_SINT15
267#define HV_X64_MSR_CRASH_P0 HV_REGISTER_CRASH_P0
268#define HV_X64_MSR_CRASH_P1 HV_REGISTER_CRASH_P1
269#define HV_X64_MSR_CRASH_P2 HV_REGISTER_CRASH_P2
270#define HV_X64_MSR_CRASH_P3 HV_REGISTER_CRASH_P3
271#define HV_X64_MSR_CRASH_P4 HV_REGISTER_CRASH_P4
272#define HV_X64_MSR_CRASH_CTL HV_REGISTER_CRASH_CTL
273#define HV_X64_MSR_TIME_REF_COUNT HV_REGISTER_TIME_REF_COUNT
274#define HV_X64_MSR_REFERENCE_TSC HV_REGISTER_REFERENCE_TSC
275
276/* Hyper-V memory host visibility */
283
284/* HvCallModifySparseGpaPageHostVisibility hypercall */
285#define HV_MAX_MODIFY_GPA_REP_COUNT ((PAGE_SIZE / sizeof(UINT64)) - 2)
294
295/*
296 * Declare the MSR used to setup pages used to communicate with the hypervisor.
297 */
308
319
328
334
340
341#define HV_X64_MSR_HYPERCALL_ENABLE 0x00000001
342#define HV_X64_MSR_HYPERCALL_PAGE_ADDRESS_SHIFT 12
343#define HV_X64_MSR_HYPERCALL_PAGE_ADDRESS_MASK \
344 (~((1ull << HV_X64_MSR_HYPERCALL_PAGE_ADDRESS_SHIFT) - 1))
345
346#define HV_X64_MSR_CRASH_PARAMS \
347 (1 + (HV_X64_MSR_CRASH_P4 - HV_X64_MSR_CRASH_P0))
348
349#define HV_IPI_LOW_VECTOR 0x10
350#define HV_IPI_HIGH_VECTOR 0xff
351
352#define HV_X64_MSR_VP_ASSIST_PAGE_ENABLE 0x00000001
353#define HV_X64_MSR_VP_ASSIST_PAGE_ADDRESS_SHIFT 12
354#define HV_X64_MSR_VP_ASSIST_PAGE_ADDRESS_MASK \
355 (~((1ull << HV_X64_MSR_VP_ASSIST_PAGE_ADDRESS_SHIFT) - 1))
356
357/* Hyper-V Enlightened VMCS version mask in nested features CPUID */
358#define HV_X64_ENLIGHTENED_VMCS_VERSION 0xff
359
360#define HV_X64_MSR_TSC_REFERENCE_ENABLE 0x00000001
361#define HV_X64_MSR_TSC_REFERENCE_ADDRESS_SHIFT 12
362
363/* Number of XMM registers used in hypercall input/output */
364#define HV_HYPERCALL_MAX_XMM_REGISTERS 6
365
378
379/* Define virtual processor assist page structure. */
390
392{
395
403
405
408
412
417
421
425
434
445
454
465
467
471
476
479
484
488
492
497
501
504
513
520
522
525
528
537
543
547
556
558
562 struct
563 {
569
577};
578
579#define HV_VMX_ENLIGHTENED_CLEAN_FIELD_NONE 0
580#define HV_VMX_ENLIGHTENED_CLEAN_FIELD_IO_BITMAP BIT(0)
581#define HV_VMX_ENLIGHTENED_CLEAN_FIELD_MSR_BITMAP BIT(1)
582#define HV_VMX_ENLIGHTENED_CLEAN_FIELD_CONTROL_GRP2 BIT(2)
583#define HV_VMX_ENLIGHTENED_CLEAN_FIELD_CONTROL_GRP1 BIT(3)
584#define HV_VMX_ENLIGHTENED_CLEAN_FIELD_CONTROL_PROC BIT(4)
585#define HV_VMX_ENLIGHTENED_CLEAN_FIELD_CONTROL_EVENT BIT(5)
586#define HV_VMX_ENLIGHTENED_CLEAN_FIELD_CONTROL_ENTRY BIT(6)
587#define HV_VMX_ENLIGHTENED_CLEAN_FIELD_CONTROL_EXCPN BIT(7)
588#define HV_VMX_ENLIGHTENED_CLEAN_FIELD_CRDR BIT(8)
589#define HV_VMX_ENLIGHTENED_CLEAN_FIELD_CONTROL_XLAT BIT(9)
590#define HV_VMX_ENLIGHTENED_CLEAN_FIELD_GUEST_BASIC BIT(10)
591#define HV_VMX_ENLIGHTENED_CLEAN_FIELD_GUEST_GRP1 BIT(11)
592#define HV_VMX_ENLIGHTENED_CLEAN_FIELD_GUEST_GRP2 BIT(12)
593#define HV_VMX_ENLIGHTENED_CLEAN_FIELD_HOST_POINTER BIT(13)
594#define HV_VMX_ENLIGHTENED_CLEAN_FIELD_HOST_GRP1 BIT(14)
595#define HV_VMX_ENLIGHTENED_CLEAN_FIELD_ENLIGHTENMENTSCONTROL BIT(15)
596
597#define HV_VMX_ENLIGHTENED_CLEAN_FIELD_ALL 0xFFFF
598
603
618
632
646
647/* HvRetargetDeviceInterrupt hypercall */
unsigned short UINT16
Definition BasicTypes.h:47
unsigned __int64 UINT64
Definition BasicTypes.h:21
unsigned char UINT8
Definition BasicTypes.h:46
unsigned int UINT32
Definition BasicTypes.h:48
hv_isolation_type
Definition HypervTlfs.h:155
@ HV_ISOLATION_TYPE_NONE
Definition HypervTlfs.h:156
@ HV_ISOLATION_TYPE_VBS
Definition HypervTlfs.h:157
@ HV_ISOLATION_TYPE_SNP
Definition HypervTlfs.h:158
hv_interrupt_type
Definition HypervTlfs.h:605
@ HV_X64_INTERRUPT_TYPE_SMI
Definition HypervTlfs.h:608
@ HV_X64_INTERRUPT_TYPE_NMI
Definition HypervTlfs.h:610
@ HV_X64_INTERRUPT_TYPE_LOCALINT0
Definition HypervTlfs.h:614
@ HV_X64_INTERRUPT_TYPE_SIPI
Definition HypervTlfs.h:612
@ HV_X64_INTERRUPT_TYPE_EXTINT
Definition HypervTlfs.h:613
@ HV_X64_INTERRUPT_TYPE_MAXIMUM
Definition HypervTlfs.h:616
@ HV_X64_INTERRUPT_TYPE_FIXED
Definition HypervTlfs.h:606
@ HV_X64_INTERRUPT_TYPE_REMOTEREAD
Definition HypervTlfs.h:609
@ HV_X64_INTERRUPT_TYPE_INIT
Definition HypervTlfs.h:611
@ HV_X64_INTERRUPT_TYPE_LOWESTPRIORITY
Definition HypervTlfs.h:607
@ HV_X64_INTERRUPT_TYPE_LOCALINT1
Definition HypervTlfs.h:615
#define HV_MAX_MODIFY_GPA_REP_COUNT
Definition HypervTlfs.h:285
hv_mem_host_visibility
Definition HypervTlfs.h:278
@ VMBUS_PAGE_VISIBLE_READ_ONLY
Definition HypervTlfs.h:280
@ VMBUS_PAGE_VISIBLE_READ_WRITE
Definition HypervTlfs.h:281
@ VMBUS_PAGE_NOT_VISIBLE
Definition HypervTlfs.h:279
struct hv_gpa_range_for_visibility __packed
Definition HypervTlfs.h:392
UINT64 guest_tr_base
Definition HypervTlfs.h:462
UINT32 host_ia32_sysenter_cs
Definition HypervTlfs.h:416
UINT64 guest_pdptr0
Definition HypervTlfs.h:493
UINT16 host_tr_selector
Definition HypervTlfs.h:402
UINT32 reserved
Definition HypervTlfs.h:566
UINT32 nested_flush_hypercall
Definition HypervTlfs.h:564
UINT32 guest_es_limit
Definition HypervTlfs.h:435
UINT32 exception_bitmap
Definition HypervTlfs.h:550
UINT64 guest_fs_base
Definition HypervTlfs.h:459
UINT64 virtual_apic_page_addr
Definition HypervTlfs.h:486
struct hv_enlightened_vmcs::@12 hv_enlightenments_control
UINT64 exit_io_instruction_eip
Definition HypervTlfs.h:542
UINT32 cpu_based_vm_exec_control
Definition HypervTlfs.h:549
UINT64 host_fs_base
Definition HypervTlfs.h:514
UINT32 guest_idtr_limit
Definition HypervTlfs.h:444
UINT64 guest_rsp
Definition HypervTlfs.h:545
UINT32 guest_ds_limit
Definition HypervTlfs.h:438
UINT64 cr0_read_shadow
Definition HypervTlfs.h:507
UINT32 guest_gs_limit
Definition HypervTlfs.h:440
UINT64 host_rip
Definition HypervTlfs.h:415
UINT32 revision_id
Definition HypervTlfs.h:393
UINT64 padding64_6[7]
Definition HypervTlfs.h:576
UINT32 vm_entry_controls
Definition HypervTlfs.h:551
UINT64 padding64_2[5]
Definition HypervTlfs.h:526
UINT32 tpr_threshold
Definition HypervTlfs.h:555
UINT64 guest_dr7
Definition HypervTlfs.h:512
UINT64 guest_ds_base
Definition HypervTlfs.h:458
UINT32 guest_ldtr_limit
Definition HypervTlfs.h:441
UINT32 page_fault_error_code_match
Definition HypervTlfs.h:478
UINT64 tsc_offset
Definition HypervTlfs.h:485
UINT64 host_rsp
Definition HypervTlfs.h:519
UINT32 vm_exit_reason
Definition HypervTlfs.h:530
UINT64 host_ia32_sysenter_eip
Definition HypervTlfs.h:414
UINT64 guest_ss_base
Definition HypervTlfs.h:457
UINT32 idt_vectoring_info_field
Definition HypervTlfs.h:533
UINT64 hv_vm_id
Definition HypervTlfs.h:570
UINT64 host_ia32_pat
Definition HypervTlfs.h:406
UINT32 guest_tr_ar_bytes
Definition HypervTlfs.h:453
UINT32 vm_exit_msr_store_count
Definition HypervTlfs.h:481
UINT64 host_gdtr_base
Definition HypervTlfs.h:517
UINT32 hv_clean_fields
Definition HypervTlfs.h:559
UINT32 vm_exit_intr_info
Definition HypervTlfs.h:531
UINT64 exit_qualification
Definition HypervTlfs.h:538
UINT64 vm_entry_msr_load_addr
Definition HypervTlfs.h:470
UINT64 cr4_read_shadow
Definition HypervTlfs.h:508
UINT32 page_fault_error_code_mask
Definition HypervTlfs.h:477
UINT32 vm_entry_msr_load_count
Definition HypervTlfs.h:483
UINT32 vm_exit_instruction_len
Definition HypervTlfs.h:535
UINT16 guest_ds_selector
Definition HypervTlfs.h:429
UINT64 padding64_4[4]
Definition HypervTlfs.h:572
UINT64 host_idtr_base
Definition HypervTlfs.h:518
UINT16 guest_fs_selector
Definition HypervTlfs.h:430
UINT32 guest_es_ar_bytes
Definition HypervTlfs.h:446
UINT32 cr3_target_count
Definition HypervTlfs.h:480
UINT32 guest_cs_limit
Definition HypervTlfs.h:436
UINT32 guest_ds_ar_bytes
Definition HypervTlfs.h:449
UINT64 guest_gs_base
Definition HypervTlfs.h:460
UINT32 msr_bitmap
Definition HypervTlfs.h:565
UINT16 guest_ss_selector
Definition HypervTlfs.h:428
UINT64 guest_pdptr2
Definition HypervTlfs.h:495
UINT32 hv_padding_32
Definition HypervTlfs.h:560
UINT64 guest_bndcfgs
Definition HypervTlfs.h:573
UINT64 host_cr3
Definition HypervTlfs.h:410
UINT16 host_ds_selector
Definition HypervTlfs.h:399
UINT16 guest_tr_selector
Definition HypervTlfs.h:433
UINT64 guest_es_base
Definition HypervTlfs.h:455
UINT32 guest_gs_ar_bytes
Definition HypervTlfs.h:451
UINT64 msr_bitmap
Definition HypervTlfs.h:424
UINT32 vm_exit_msr_load_count
Definition HypervTlfs.h:482
UINT64 guest_rip
Definition HypervTlfs.h:557
UINT32 vm_entry_intr_info_field
Definition HypervTlfs.h:552
UINT16 host_ss_selector
Definition HypervTlfs.h:398
UINT16 host_es_selector
Definition HypervTlfs.h:396
UINT32 guest_sysenter_cs
Definition HypervTlfs.h:503
UINT32 vm_instruction_error
Definition HypervTlfs.h:529
UINT32 hv_vp_id
Definition HypervTlfs.h:568
UINT64 cr4_guest_host_mask
Definition HypervTlfs.h:506
UINT32 guest_cs_ar_bytes
Definition HypervTlfs.h:447
UINT16 host_fs_selector
Definition HypervTlfs.h:400
UINT16 guest_gs_selector
Definition HypervTlfs.h:431
UINT32 guest_ss_limit
Definition HypervTlfs.h:437
UINT64 cr0_guest_host_mask
Definition HypervTlfs.h:505
UINT64 cr3_target_value1
Definition HypervTlfs.h:473
UINT16 padding16_2[3]
Definition HypervTlfs.h:524
UINT64 padding64_5[7]
Definition HypervTlfs.h:574
UINT64 guest_ia32_efer
Definition HypervTlfs.h:491
UINT64 guest_idtr_base
Definition HypervTlfs.h:464
UINT32 abort
Definition HypervTlfs.h:394
UINT32 pin_based_vm_exec_control
Definition HypervTlfs.h:418
UINT64 vm_exit_msr_load_addr
Definition HypervTlfs.h:469
UINT32 guest_ldtr_ar_bytes
Definition HypervTlfs.h:452
UINT32 vm_entry_instruction_len
Definition HypervTlfs.h:554
UINT64 guest_pdptr1
Definition HypervTlfs.h:494
UINT64 cr3_target_value3
Definition HypervTlfs.h:475
UINT32 idt_vectoring_error_code
Definition HypervTlfs.h:534
UINT64 host_gs_base
Definition HypervTlfs.h:515
UINT64 guest_cs_base
Definition HypervTlfs.h:456
UINT64 guest_cr0
Definition HypervTlfs.h:509
UINT16 guest_cs_selector
Definition HypervTlfs.h:427
UINT64 guest_rflags
Definition HypervTlfs.h:546
UINT64 io_bitmap_b
Definition HypervTlfs.h:423
UINT64 guest_cr4
Definition HypervTlfs.h:511
UINT64 guest_pending_dbg_exceptions
Definition HypervTlfs.h:498
UINT16 host_gs_selector
Definition HypervTlfs.h:401
UINT64 guest_physical_address
Definition HypervTlfs.h:527
UINT32 guest_gdtr_limit
Definition HypervTlfs.h:443
UINT32 guest_interruptibility_info
Definition HypervTlfs.h:548
UINT64 host_ia32_efer
Definition HypervTlfs.h:407
UINT64 guest_ia32_pat
Definition HypervTlfs.h:490
UINT64 host_cr4
Definition HypervTlfs.h:411
UINT16 virtual_processor_id
Definition HypervTlfs.h:523
UINT64 host_ia32_sysenter_esp
Definition HypervTlfs.h:413
UINT32 vm_exit_controls
Definition HypervTlfs.h:419
UINT64 cr3_target_value2
Definition HypervTlfs.h:474
UINT64 padding64_1[3]
Definition HypervTlfs.h:466
UINT64 host_cr0
Definition HypervTlfs.h:409
UINT64 guest_ia32_debugctl
Definition HypervTlfs.h:489
UINT16 padding16_1
Definition HypervTlfs.h:404
UINT64 guest_sysenter_esp
Definition HypervTlfs.h:499
UINT64 guest_pdptr3
Definition HypervTlfs.h:496
UINT64 cr3_target_value0
Definition HypervTlfs.h:472
UINT64 guest_cr3
Definition HypervTlfs.h:510
UINT32 guest_ss_ar_bytes
Definition HypervTlfs.h:448
UINT32 vmx_instruction_info
Definition HypervTlfs.h:536
UINT16 guest_ldtr_selector
Definition HypervTlfs.h:432
UINT64 exit_io_instruction_ecx
Definition HypervTlfs.h:539
UINT64 io_bitmap_a
Definition HypervTlfs.h:422
UINT32 guest_tr_limit
Definition HypervTlfs.h:442
UINT64 vm_exit_msr_store_addr
Definition HypervTlfs.h:468
UINT64 guest_sysenter_eip
Definition HypervTlfs.h:500
UINT64 partition_assist_page
Definition HypervTlfs.h:571
UINT32 secondary_vm_exec_control
Definition HypervTlfs.h:420
UINT64 host_tr_base
Definition HypervTlfs.h:516
UINT16 guest_es_selector
Definition HypervTlfs.h:426
UINT32 vm_entry_exception_error_code
Definition HypervTlfs.h:553
UINT64 exit_io_instruction_edi
Definition HypervTlfs.h:541
UINT64 xss_exit_bitmap
Definition HypervTlfs.h:575
UINT32 guest_fs_limit
Definition HypervTlfs.h:439
UINT32 guest_fs_ar_bytes
Definition HypervTlfs.h:450
UINT64 exit_io_instruction_esi
Definition HypervTlfs.h:540
UINT64 vmcs_link_pointer
Definition HypervTlfs.h:487
UINT64 guest_ldtr_base
Definition HypervTlfs.h:461
UINT32 guest_activity_state
Definition HypervTlfs.h:502
UINT16 host_cs_selector
Definition HypervTlfs.h:397
UINT64 ept_pointer
Definition HypervTlfs.h:521
UINT64 guest_gdtr_base
Definition HypervTlfs.h:463
UINT32 vm_exit_intr_error_code
Definition HypervTlfs.h:532
UINT32 hv_synthetic_controls
Definition HypervTlfs.h:561
UINT64 guest_linear_address
Definition HypervTlfs.h:544
Definition HypervTlfs.h:287
UINT32 reserved0
Definition HypervTlfs.h:290
UINT64 gpa_page_list[HV_MAX_MODIFY_GPA_REP_COUNT]
Definition HypervTlfs.h:292
UINT64 partition_id
Definition HypervTlfs.h:288
UINT32 reserved1
Definition HypervTlfs.h:291
UINT32 host_visibility
Definition HypervTlfs.h:289
Definition HypervTlfs.h:367
struct hv_nested_enlightenments_control::@10 features
struct hv_nested_enlightenments_control::@11 hypercallControls
UINT32 reserved
Definition HypervTlfs.h:371
UINT32 directhypercall
Definition HypervTlfs.h:370
Definition HypervTlfs.h:600
UINT32 tlb_lock_count
Definition HypervTlfs.h:601
Definition HypervTlfs.h:321
UINT64 target_vp
Definition HypervTlfs.h:326
UINT64 enabled
Definition HypervTlfs.h:324
UINT64 reserved1
Definition HypervTlfs.h:323
UINT64 vector
Definition HypervTlfs.h:322
UINT64 reserved2
Definition HypervTlfs.h:325
Definition HypervTlfs.h:330
UINT64 enabled
Definition HypervTlfs.h:331
UINT64 reserved
Definition HypervTlfs.h:332
Definition HypervTlfs.h:336
UINT64 inprogress
Definition HypervTlfs.h:337
UINT64 reserved
Definition HypervTlfs.h:338
Definition HypervTlfs.h:381
UINT8 enlighten_vmentry
Definition HypervTlfs.h:386
UINT32 apic_assist
Definition HypervTlfs.h:382
UINT32 reserved1
Definition HypervTlfs.h:383
struct hv_nested_enlightenments_control nested_control
Definition HypervTlfs.h:385
UINT64 vtl_control[3]
Definition HypervTlfs.h:384
UINT64 current_nested_vmcs
Definition HypervTlfs.h:388
UINT8 reserved2[7]
Definition HypervTlfs.h:387
Definition HypervTlfs.h:620
UINT32 redirection_hint
Definition HypervTlfs.h:626
UINT32 as_uint32
Definition HypervTlfs.h:621
UINT32 msi_base
Definition HypervTlfs.h:629
UINT32 reserved2
Definition HypervTlfs.h:627
UINT32 destination_id
Definition HypervTlfs.h:628
UINT32 destination_mode
Definition HypervTlfs.h:625
UINT32 reserved1
Definition HypervTlfs.h:624
Definition HypervTlfs.h:634
UINT32 reserved2
Definition HypervTlfs.h:643
UINT32 level_assert
Definition HypervTlfs.h:641
UINT32 as_uint32
Definition HypervTlfs.h:635
UINT32 delivery_mode
Definition HypervTlfs.h:639
UINT32 reserved1
Definition HypervTlfs.h:640
UINT32 trigger_mode
Definition HypervTlfs.h:642
UINT32 vector
Definition HypervTlfs.h:638
Definition HypervTlfs.h:649
union hv_msi_address_register address
Definition HypervTlfs.h:653
union hv_msi_data_register data
Definition HypervTlfs.h:654
struct hv_msi_entry::@17 __packed
UINT64 as_uint64
Definition HypervTlfs.h:650
Definition HypervTlfs.h:310
struct hv_vp_assist_msr_contents::@9 __packed
UINT64 pfn
Definition HypervTlfs.h:316
UINT64 enable
Definition HypervTlfs.h:314
UINT64 reserved
Definition HypervTlfs.h:315
UINT64 as_uint64
Definition HypervTlfs.h:311
Definition HypervTlfs.h:299
UINT64 enable
Definition HypervTlfs.h:303
UINT64 as_uint64
Definition HypervTlfs.h:300
struct hv_x64_msr_hypercall_contents::@8 __packed
UINT64 reserved
Definition HypervTlfs.h:304
UINT64 guest_physical_address
Definition HypervTlfs.h:305