HyperDbg Debugger
Loading...
Searching...
No Matches
IoHandler.h
Go to the documentation of this file.
1
12#pragma once
13
15// Enums //
17
27
37
39// I/O Instructions Functions //
41
42unsigned char
43__inbyte(unsigned short);
44#pragma intrinsic(__inbyte)
45
46inline UINT8
48{
49 return __inbyte(port);
50}
51
52unsigned short
53__inword(unsigned short);
54#pragma intrinsic(__inword)
55
56inline UINT16
58{
59 return __inword(port);
60}
61
62unsigned long
63__indword(unsigned short);
64#pragma intrinsic(__indword)
65
66inline UINT32
68{
69 return __indword(port);
70}
71
72void
73__inbytestring(unsigned short, unsigned char *, unsigned long);
74#pragma intrinsic(__inbytestring)
75
76inline void
77IoInByteString(UINT16 port, UINT8 * data, UINT32 size)
78{
79 __inbytestring(port, data, size);
80}
81
82void
83__inwordstring(unsigned short, unsigned short *, unsigned long);
84#pragma intrinsic(__inwordstring)
85
86inline void
88{
89 __inwordstring(port, data, size);
90}
91
92void
93__indwordstring(unsigned short, unsigned long *, unsigned long);
94#pragma intrinsic(__indwordstring)
95
96inline void
98{
99 __indwordstring(port, (unsigned long *)data, size);
100}
101
102void
103__outbyte(unsigned short, unsigned char);
104#pragma intrinsic(__outbyte)
105
106inline void
108{
109 __outbyte(port, value);
110}
111
112void
113__outword(unsigned short, unsigned short);
114#pragma intrinsic(__outword)
115
116inline void
118{
119 __outword(port, value);
120}
121
122void
123__outdword(unsigned short, unsigned long);
124#pragma intrinsic(__outdword)
125
126inline void
128{
129 __outdword(port, value);
130}
131
132void
133__outbytestring(unsigned short, unsigned char *, unsigned long);
134#pragma intrinsic(__outbytestring)
135
136inline void
137IoOutByteString(UINT16 port, UINT8 * data, UINT32 count)
138{
139 __outbytestring(port, data, count);
140}
141
142void
143__outwordstring(unsigned short, unsigned short *, unsigned long);
144#pragma intrinsic(__outwordstring)
145
146inline void
148{
149 __outwordstring(port, data, count);
150}
151
152void
153__outdwordstring(unsigned short, unsigned long *, unsigned long);
154#pragma intrinsic(__outdwordstring)
155
156inline void
158{
159 __outdwordstring(port, (unsigned long *)data, count);
160}
161
163// Functions //
165
166VOID
167IoHandleIoVmExits(VIRTUAL_MACHINE_STATE * VCpu, VMX_EXIT_QUALIFICATION_IO_INSTRUCTION IoQualification, RFLAGS Flags);
168
169VOID
171
172VOID
unsigned short UINT16
Definition BasicTypes.h:47
#define VOID
Definition BasicTypes.h:33
unsigned char UINT8
Definition BasicTypes.h:46
unsigned int UINT32
Definition BasicTypes.h:48
enum _IO_OP_ENCODING IO_OP_ENCODING
Immediate value or in DX.
UINT32 IoInDword(UINT16 port)
Definition IoHandler.h:67
unsigned short __inword(unsigned short)
unsigned long __indword(unsigned short)
void __indwordstring(unsigned short, unsigned long *, unsigned long)
void __inbytestring(unsigned short, unsigned char *, unsigned long)
_IO_OP_ENCODING
Immediate value or in DX.
Definition IoHandler.h:33
@ OpEncodingImm
Definition IoHandler.h:35
@ OpEncodingDx
Definition IoHandler.h:34
void IoOutWord(UINT16 port, UINT16 value)
Definition IoHandler.h:117
void __outbyte(unsigned short, unsigned char)
VOID IoHandlePerformIoBitmapReset(VIRTUAL_MACHINE_STATE *VCpu)
Reset I/O Bitmap.
Definition IoHandler.c:268
void IoInDwordString(UINT16 port, UINT32 *data, UINT32 size)
Definition IoHandler.h:97
void __outwordstring(unsigned short, unsigned short *, unsigned long)
_IO_ACCESS_INSTR
IN Instruction or OUT Instruction.
Definition IoHandler.h:23
@ AccessOut
Definition IoHandler.h:24
@ AccessIn
Definition IoHandler.h:25
void IoOutByteString(UINT16 port, UINT8 *data, UINT32 count)
Definition IoHandler.h:137
void __outword(unsigned short, unsigned short)
void __inwordstring(unsigned short, unsigned short *, unsigned long)
VOID IoHandleIoVmExits(VIRTUAL_MACHINE_STATE *VCpu, VMX_EXIT_QUALIFICATION_IO_INSTRUCTION IoQualification, RFLAGS Flags)
VM-Exit handler for I/O Instructions (in/out)
Definition IoHandler.c:24
UINT16 IoInWord(UINT16 port)
Definition IoHandler.h:57
void IoOutWordString(UINT16 port, UINT16 *data, UINT32 count)
Definition IoHandler.h:147
void __outdwordstring(unsigned short, unsigned long *, unsigned long)
void __outdword(unsigned short, unsigned long)
UINT8 IoInByte(UINT16 port)
Definition IoHandler.h:47
void IoOutByte(UINT16 port, UINT8 value)
Definition IoHandler.h:107
VOID IoHandlePerformIoBitmapChange(VIRTUAL_MACHINE_STATE *VCpu, UINT32 Port)
Change I/O Bitmap.
Definition IoHandler.c:241
void IoOutDword(UINT16 port, UINT32 value)
Definition IoHandler.h:127
void IoInByteString(UINT16 port, UINT8 *data, UINT32 size)
Definition IoHandler.h:77
unsigned char __inbyte(unsigned short)
void __outbytestring(unsigned short, unsigned char *, unsigned long)
enum _IO_ACCESS_INSTR IO_ACCESS_INSTR
IN Instruction or OUT Instruction.
void IoInWordString(UINT16 port, UINT16 *data, UINT32 size)
Definition IoHandler.h:87
void IoOutDwordString(UINT16 port, UINT32 *data, UINT32 count)
Definition IoHandler.h:157
The status of each core after and before VMX.
Definition State.h:290