HyperDbg Debugger
Loading...
Searching...
No Matches
IdtEmulation.h
Go to the documentation of this file.
1
12#pragma once
13
15// Constants //
17
23#define USE_DEFAULT_OS_IDT_AS_HOST_IDT FALSE
24
29#define HOST_IDT_DESCRIPTOR_COUNT 256
30
32// Structures //
34
40{
41 //
42 // general-purpose registers
43 //
44 union
45 {
50 };
51 union
52 {
57 };
58 union
59 {
64 };
65 union
66 {
71 };
72 union
73 {
78 };
79 union
80 {
85 };
86 union
87 {
92 };
93 union
94 {
99 };
100 union
101 {
106 };
107 union
108 {
113 };
114 union
115 {
120 };
121 union
122 {
127 };
128 union
129 {
134 };
135 union
136 {
141 };
142 union
143 {
148 };
149
150 // interrupt vector
152
153 // _MACHINE_FRAME
161
162//
163// remember to update this value in AsmInterruptHandlers.asm
164//
165static_assert(sizeof(INTERRUPT_TRAP_FRAME) == (0x78 + 0x38), "Size of INTERRUPT_TRAP_FRAME is not as expected");
166
172{
173 //
174 // whether an exception occurred or not
175 //
177
178 //
179 // interrupt vector
180 //
182
183 //
184 // error code
185 //
188
190// Functions //
192
193VOID
195
196VOID
198 _In_ VMEXIT_INTERRUPT_INFORMATION InterruptExit);
199
200VOID
202 _In_ VMEXIT_INTERRUPT_INFORMATION InterruptExit);
203
204VOID
206
207VOID
unsigned short UINT16
Definition BasicTypes.h:47
UCHAR BOOLEAN
Definition BasicTypes.h:39
#define VOID
Definition BasicTypes.h:33
unsigned __int64 UINT64
Definition BasicTypes.h:21
unsigned char UINT8
Definition BasicTypes.h:46
unsigned int UINT32
Definition BasicTypes.h:48
VOID IdtEmulationHandleExceptionAndNmi(_Inout_ VIRTUAL_MACHINE_STATE *VCpu, _In_ VMEXIT_INTERRUPT_INFORMATION InterruptExit)
Handle NMI and exception vm-exits.
Definition IdtEmulation.c:257
VOID IdtEmulationHandleInterruptWindowExiting(_Inout_ VIRTUAL_MACHINE_STATE *VCpu)
Handle interrupt-window exitings.
Definition IdtEmulation.c:565
VOID IdtEmulationPrepareHostIdt(_Inout_ VIRTUAL_MACHINE_STATE *VCpu)
Prepare Host IDT.
Definition IdtEmulation.c:67
struct _INTERRUPT_TRAP_FRAME INTERRUPT_TRAP_FRAME
Trap frame for interrupts.
struct _HOST_EXCEPTION_INFO * PHOST_EXCEPTION_INFO
VOID IdtEmulationHandleExternalInterrupt(_Inout_ VIRTUAL_MACHINE_STATE *VCpu, _In_ VMEXIT_INTERRUPT_INFORMATION InterruptExit)
external-interrupt vm-exit handler
Definition IdtEmulation.c:415
struct _HOST_EXCEPTION_INFO HOST_EXCEPTION_INFO
Filled out when a host exception occurs.
VOID IdtEmulationHandleNmiWindowExiting(_Inout_ VIRTUAL_MACHINE_STATE *VCpu)
Handle NMI-window exitings.
Definition IdtEmulation.c:508
struct _INTERRUPT_TRAP_FRAME * PINTERRUPT_TRAP_FRAME
Filled out when a host exception occurs.
Definition IdtEmulation.h:172
BOOLEAN ExceptionOccurred
Definition IdtEmulation.h:176
UINT64 Vector
Definition IdtEmulation.h:181
UINT64 Error
Definition IdtEmulation.h:186
Trap frame for interrupts.
Definition IdtEmulation.h:40
UINT16 r11w
Definition IdtEmulation.h:118
UINT64 cs
Definition IdtEmulation.h:156
UINT8 al
Definition IdtEmulation.h:49
UINT16 r10w
Definition IdtEmulation.h:111
UINT16 r14w
Definition IdtEmulation.h:139
UINT64 rip
Definition IdtEmulation.h:155
UINT64 r8
Definition IdtEmulation.h:95
UINT8 r13b
Definition IdtEmulation.h:133
UINT64 rdi
Definition IdtEmulation.h:88
UINT8 sil
Definition IdtEmulation.h:84
UINT32 r13d
Definition IdtEmulation.h:131
UINT16 bx
Definition IdtEmulation.h:69
UINT64 ss
Definition IdtEmulation.h:159
UINT32 r8d
Definition IdtEmulation.h:96
UINT32 ebx
Definition IdtEmulation.h:68
UINT64 rdx
Definition IdtEmulation.h:60
UINT16 di
Definition IdtEmulation.h:90
UINT8 cl
Definition IdtEmulation.h:56
UINT32 r9d
Definition IdtEmulation.h:103
UINT64 r10
Definition IdtEmulation.h:109
UINT32 ebp
Definition IdtEmulation.h:75
UINT64 rbx
Definition IdtEmulation.h:67
UINT64 rsi
Definition IdtEmulation.h:81
UINT32 edi
Definition IdtEmulation.h:89
UINT16 bp
Definition IdtEmulation.h:76
UINT8 dil
Definition IdtEmulation.h:91
UINT16 si
Definition IdtEmulation.h:83
UINT64 rax
Definition IdtEmulation.h:46
UINT32 edx
Definition IdtEmulation.h:61
UINT16 dx
Definition IdtEmulation.h:62
UINT32 r14d
Definition IdtEmulation.h:138
UINT8 bl
Definition IdtEmulation.h:70
UINT64 r12
Definition IdtEmulation.h:123
UINT8 r14b
Definition IdtEmulation.h:140
UINT64 r14
Definition IdtEmulation.h:137
UINT8 dl
Definition IdtEmulation.h:63
UINT16 ax
Definition IdtEmulation.h:48
UINT64 rsp
Definition IdtEmulation.h:158
UINT8 r10b
Definition IdtEmulation.h:112
UINT32 r15d
Definition IdtEmulation.h:145
UINT64 rbp
Definition IdtEmulation.h:74
UINT16 r15w
Definition IdtEmulation.h:146
UINT64 r15
Definition IdtEmulation.h:144
UINT16 r9w
Definition IdtEmulation.h:104
UINT64 r11
Definition IdtEmulation.h:116
UINT16 r12w
Definition IdtEmulation.h:125
UINT32 ecx
Definition IdtEmulation.h:54
UINT64 error
Definition IdtEmulation.h:154
UINT16 r8w
Definition IdtEmulation.h:97
UINT32 r11d
Definition IdtEmulation.h:117
UINT32 r10d
Definition IdtEmulation.h:110
UINT8 bpl
Definition IdtEmulation.h:77
UINT8 r9b
Definition IdtEmulation.h:105
UINT64 r9
Definition IdtEmulation.h:102
UINT8 r8b
Definition IdtEmulation.h:98
UINT16 cx
Definition IdtEmulation.h:55
UINT32 eax
Definition IdtEmulation.h:47
UINT64 rcx
Definition IdtEmulation.h:53
UINT64 rflags
Definition IdtEmulation.h:157
UINT8 r11b
Definition IdtEmulation.h:119
UINT8 r15b
Definition IdtEmulation.h:147
UINT32 r12d
Definition IdtEmulation.h:124
UINT16 r13w
Definition IdtEmulation.h:132
UINT8 r12b
Definition IdtEmulation.h:126
UINT32 esi
Definition IdtEmulation.h:82
UINT64 r13
Definition IdtEmulation.h:130
UINT8 vector
Definition IdtEmulation.h:151
The status of each core after and before VMX.
Definition State.h:290