31#define BOP_CONTROL 0xFF
32 #define BOP_CONTROL_DEFFUNC 0x00
33 #define BOP_CONTROL_INT32 0xFF
35#define INT16_TRAMPOLINE_SIZE sizeof(ULONGLONG)
77 DPRINT1(
"Unhandled 32-bit interrupt: 0x%02X, AX = 0x%04X\n", IntNum,
getAX());
108 IntVecTable[IntNumber] = FarPtr;
130 DPRINT1(
"RegisterInt32: Interrupt 0x%02X already registered!\n", IntNumber);
140 IntCallback[2] = IntNumber;
161 PUCHAR Trampoline = TrampolineBase;
164 DPRINT(
"Int32Call(0x%02X)\n", IntNumber);
172 if (IntNumber == 0x03)
175 *Trampoline++ = 0xCC;
181 *Trampoline++ = 0xCD;
182 *Trampoline++ = IntNumber;
INT __cdecl DisplayMessage(_In_opt_ HWND hWnd, _In_ UINT uType, _In_opt_ PCWSTR pszTitle, _In_opt_ PCWSTR pszFormatMessage,...)
VOID RegisterBop(BYTE BopCode, EMULATOR_BOP_PROC BopHandler)
#define SEG_OFF_TO_PTR(seg, off)
static VOID WINAPI Int32Dispatch(LPWORD Stack)
static EMULATOR_INT32_PROC Int32Proc[EMULATOR_MAX_INT32_NUM]
ULONG RegisterInt32(IN ULONG FarPtr, IN BYTE IntNumber, IN EMULATOR_INT32_PROC IntHandler, OUT PSIZE_T CodeSize OPTIONAL)
VOID InitializeInt32(VOID)
ULONG RegisterInt16(IN ULONG FarPtr, IN BYTE IntNumber, IN LPBYTE CallbackCode, IN SIZE_T CallbackSize, OUT PSIZE_T CodeSize OPTIONAL)
static VOID WINAPI ControlBop(LPWORD Stack)
VOID Int32Call(IN PCALLBACK16 Context, IN BYTE IntNumber)
#define INT16_TRAMPOLINE_SIZE
#define BOP_CONTROL_INT32
#define EMULATOR_MAX_INT32_NUM
#define Int16To32StubSize
VOID(WINAPI * EMULATOR_INT32_PROC)(LPWORD Stack)
__GNU_EXTENSION typedef unsigned __int64 * PULONGLONG
PULONG MinorVersion OPTIONAL
ULONG RegisterCallback16(IN ULONG FarPtr, IN LPBYTE CallbackCode, IN SIZE_T CallbackSize, OUT PSIZE_T CodeSize OPTIONAL)
VOID Call16(IN USHORT Segment, IN USHORT Offset)
#define UnSimulate16(trap)
#define RtlCopyMemory(Destination, Source, Length)
USHORT WINAPI getIP(VOID)
USHORT WINAPI getAX(VOID)
USHORT WINAPI getCS(VOID)
VOID WINAPI setIP(USHORT)
_In_ WDFREQUEST _In_ PIO_STACK_LOCATION Stack