HyperDbg Debugger
Loading...
Searching...
No Matches
PlatformIntrinsicsVmx.h
Go to the documentation of this file.
1
12#pragma once
13
14#if defined(__linux__)
16#endif // defined(__linux__)
17
19// VMX Instructions //
21
22//
23// VMPTRST
24//
25extern inline VOID
26VmxVmptrst(UINT64 * VmcsPhysicalAddress);
27
28//
29// VMPTRLD
30//
31extern inline UCHAR
32VmxVmptrld(UINT64 * VmcsPhysicalAddress);
33
34//
35// VMCLEAR
36//
37extern inline UCHAR
38VmxVmclear(UINT64 * VmcsPhysicalAddress);
39
40//
41// VMXON
42//
43extern inline UCHAR
44VmxVmxon(UINT64 * VmxonRegionPhysicalAddress);
45
46//
47// VMLAUNCH
48//
49extern inline VOID
50 VmxVmlaunch(VOID);
51
52//
53// VMRESUME
54//
55extern inline VOID
56 VmxVmresume(VOID);
57
58//
59// VMXOFF
60//
61extern inline VOID
62 VmxVmxoff(VOID);
63
64//
65// VMREAD
66//
67extern inline UCHAR
68VmxVmread64(size_t Field, UINT64 FieldValue);
69
70extern inline UCHAR
71VmxVmread32(size_t Field, UINT32 FieldValue);
72
73extern inline UCHAR
74VmxVmread16(size_t Field, UINT16 FieldValue);
75
76extern inline UCHAR
77VmxVmread64P(size_t Field, UINT64 * FieldValue);
78
79extern inline UCHAR
80VmxVmread32P(size_t Field, UINT32 * FieldValue);
81
82extern inline UCHAR
83VmxVmread16P(size_t Field, UINT16 * FieldValue);
84
85//
86// VMWRITE
87//
88extern inline UCHAR
89VmxVmwrite64(size_t Field, UINT64 FieldValue);
90
91extern inline UCHAR
92VmxVmwrite32(size_t Field, UINT32 FieldValue);
93
94extern inline UCHAR
95VmxVmwrite16(size_t Field, UINT16 FieldValue);
UCHAR VmxVmread64P(size_t Field, UINT64 *FieldValue)
VMX VMREAD instruction (64-bit, pointer variant).
Definition PlatformIntrinsicsVmx.c:207
UCHAR VmxVmread16P(size_t Field, UINT16 *FieldValue)
VMX VMREAD instruction (16-bit, pointer variant).
Definition PlatformIntrinsicsVmx.c:250
UCHAR VmxVmwrite64(size_t Field, UINT64 FieldValue)
VMX VMWRITE instruction (64-bit).
Definition PlatformIntrinsicsVmx.c:273
VOID VmxVmptrst(UINT64 *VmcsPhysicalAddress)
VMX VMPTRST instruction.
Definition PlatformIntrinsicsVmx.c:339
UCHAR VmxVmread64(size_t Field, UINT64 FieldValue)
VMX VMREAD instruction (64-bit).
Definition PlatformIntrinsicsVmx.c:141
VOID VmxVmxoff(VOID)
VMX VMXOFF instruction.
Definition PlatformIntrinsicsVmx.c:373
UCHAR VmxVmwrite16(size_t Field, UINT16 FieldValue)
VMX VMWRITE instruction (16-bit).
Definition PlatformIntrinsicsVmx.c:316
UCHAR VmxVmptrld(UINT64 *VmcsPhysicalAddress)
VMX VMPTRLD instruction.
Definition PlatformIntrinsicsVmx.c:409
UCHAR VmxVmread32(size_t Field, UINT32 FieldValue)
VMX VMREAD instruction (32-bit).
Definition PlatformIntrinsicsVmx.c:161
UCHAR VmxVmxon(UINT64 *VmxonRegionPhysicalAddress)
VMX VMXON instruction.
Definition PlatformIntrinsicsVmx.c:447
UCHAR VmxVmclear(UINT64 *VmcsPhysicalAddress)
VMX VMCLEAR instruction.
Definition PlatformIntrinsicsVmx.c:428
VOID VmxVmlaunch(VOID)
VMX VMLAUNCH instruction.
Definition PlatformIntrinsicsVmx.c:390
UCHAR VmxVmread16(size_t Field, UINT16 FieldValue)
VMX VMREAD instruction (16-bit).
Definition PlatformIntrinsicsVmx.c:184
UCHAR VmxVmwrite32(size_t Field, UINT32 FieldValue)
VMX VMWRITE instruction (32-bit).
Definition PlatformIntrinsicsVmx.c:293
UCHAR VmxVmread32P(size_t Field, UINT32 *FieldValue)
VMX VMREAD instruction (32-bit, pointer variant).
Definition PlatformIntrinsicsVmx.c:227
VOID VmxVmresume(VOID)
VMX VMRESUME instruction.
Definition PlatformIntrinsicsVmx.c:356
unsigned short UINT16
Definition BasicTypes.h:53
unsigned char UCHAR
Definition BasicTypes.h:34
unsigned int UINT32
Definition BasicTypes.h:54