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
42inline UINT8
44{
45 return CpuIoInByte(port);
46}
47
48inline UINT16
50{
51 return CpuIoInWord(port);
52}
53
54inline UINT32
56{
57 return CpuIoInDword(port);
58}
59
60inline VOID
61IoInByteString(UINT16 port, UINT8 * data, UINT32 size)
62{
63 CpuIoInByteString(port, data, size);
64}
65
66inline VOID
68{
69 CpuIoInWordString(port, data, size);
70}
71
72inline VOID
74{
75 CpuIoInDwordString(port, data, size);
76}
77
78inline VOID
80{
81 CpuIoOutByte(port, value);
82}
83
84inline VOID
86{
87 CpuIoOutWord(port, value);
88}
89
90inline VOID
92{
93 CpuIoOutDword(port, value);
94}
95
96inline VOID
97IoOutByteString(UINT16 port, UINT8 * data, UINT32 count)
98{
99 CpuIoOutByteString(port, data, count);
100}
101
102inline VOID
104{
105 CpuIoOutWordString(port, data, count);
106}
107
108inline VOID
110{
111 CpuIoOutDwordString(port, data, count);
112}
113
115// Functions //
117
118VOID
119IoHandleIoVmExits(VIRTUAL_MACHINE_STATE * VCpu, VMX_EXIT_QUALIFICATION_IO_INSTRUCTION IoQualification, RFLAGS Flags);
120
121VOID
123
124VOID
enum _IO_OP_ENCODING IO_OP_ENCODING
Immediate value or in DX.
UINT32 IoInDword(UINT16 port)
Definition IoHandler.h:55
VOID IoOutByteString(UINT16 port, UINT8 *data, UINT32 count)
Definition IoHandler.h:97
VOID IoInByteString(UINT16 port, UINT8 *data, UINT32 size)
Definition IoHandler.h:61
VOID IoOutByte(UINT16 port, UINT8 value)
Definition IoHandler.h:79
_IO_OP_ENCODING
Immediate value or in DX.
Definition IoHandler.h:33
@ OpEncodingImm
Definition IoHandler.h:35
@ OpEncodingDx
Definition IoHandler.h:34
VOID IoHandlePerformIoBitmapReset(VIRTUAL_MACHINE_STATE *VCpu)
Reset I/O Bitmap.
Definition IoHandler.c:268
VOID IoOutWordString(UINT16 port, UINT16 *data, UINT32 count)
Definition IoHandler.h:103
_IO_ACCESS_INSTR
IN Instruction or OUT Instruction.
Definition IoHandler.h:23
@ AccessOut
Definition IoHandler.h:24
@ AccessIn
Definition IoHandler.h:25
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:49
UINT8 IoInByte(UINT16 port)
Definition IoHandler.h:43
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:91
VOID IoInDwordString(UINT16 port, UINT32 *data, UINT32 size)
Definition IoHandler.h:73
VOID IoInWordString(UINT16 port, UINT16 *data, UINT32 size)
Definition IoHandler.h:67
VOID IoOutDwordString(UINT16 port, UINT32 *data, UINT32 count)
Definition IoHandler.h:109
enum _IO_ACCESS_INSTR IO_ACCESS_INSTR
IN Instruction or OUT Instruction.
VOID IoOutWord(UINT16 port, UINT16 value)
Definition IoHandler.h:85
UINT8 CpuIoInByte(UINT16 Port)
Read a byte from an I/O port.
Definition PlatformIntrinsics.c:573
VOID CpuIoOutByte(UINT16 Port, UINT8 Value)
Write a byte to an I/O port.
Definition PlatformIntrinsics.c:690
VOID CpuIoOutByteString(UINT16 Port, UINT8 *Data, UINT32 Count)
Write a byte string to an I/O port.
Definition PlatformIntrinsics.c:745
VOID CpuIoInWordString(UINT16 Port, UINT16 *Data, UINT32 Size)
Read a word string from an I/O port.
Definition PlatformIntrinsics.c:653
VOID CpuIoOutWord(UINT16 Port, UINT16 Value)
Write a word to an I/O port.
Definition PlatformIntrinsics.c:708
UINT16 CpuIoInWord(UINT16 Port)
Read a word from an I/O port.
Definition PlatformIntrinsics.c:593
UINT32 CpuIoInDword(UINT16 Port)
Read a dword from an I/O port.
Definition PlatformIntrinsics.c:613
VOID CpuIoOutDword(UINT16 Port, UINT32 Value)
Write a dword to an I/O port.
Definition PlatformIntrinsics.c:726
VOID CpuIoInDwordString(UINT16 Port, UINT32 *Data, UINT32 Size)
Read a dword string from an I/O port.
Definition PlatformIntrinsics.c:672
VOID CpuIoInByteString(UINT16 Port, UINT8 *Data, UINT32 Size)
Read a byte string from an I/O port.
Definition PlatformIntrinsics.c:634
VOID CpuIoOutWordString(UINT16 Port, UINT16 *Data, UINT32 Count)
Write a word string to an I/O port.
Definition PlatformIntrinsics.c:764
VOID CpuIoOutDwordString(UINT16 Port, UINT32 *Data, UINT32 Count)
Write a dword string to an I/O port.
Definition PlatformIntrinsics.c:783
unsigned short UINT16
Definition BasicTypes.h:53
unsigned char UINT8
Definition BasicTypes.h:52
unsigned int UINT32
Definition BasicTypes.h:54
struct _VIRTUAL_MACHINE_STATE VIRTUAL_MACHINE_STATE
The status of each core after and before VMX.