15#define EMULATOR_MAX_IOPORTS_NUM 0x10000
_In_ NDIS_STATUS _In_ ULONG _In_ USHORT _In_opt_ PVOID _In_ ULONG DataSize
USHORT(WINAPI * EMULATOR_INW_PROC)(USHORT Port)
VOID FASTCALL EmulatorReadIo(PFAST486_STATE State, USHORT Port, PVOID Buffer, ULONG DataCount, UCHAR DataSize)
VOID(WINAPI * EMULATOR_OUTB_PROC)(USHORT Port, UCHAR Data)
VOID(WINAPI * EMULATOR_OUTSD_PROC)(USHORT Port, PULONG Buffer, ULONG Count)
VOID(WINAPI * EMULATOR_INSW_PROC)(USHORT Port, PUSHORT Buffer, ULONG Count)
ULONG IOReadD(USHORT Port)
VOID IOWriteB(USHORT Port, UCHAR Buffer)
VOID IOWriteW(USHORT Port, USHORT Buffer)
VOID(WINAPI * EMULATOR_OUTD_PROC)(USHORT Port, ULONG Data)
VOID IOReadStrB(USHORT Port, PUCHAR Buffer, ULONG Count)
VOID(WINAPI * EMULATOR_OUTSB_PROC)(USHORT Port, PUCHAR Buffer, ULONG Count)
USHORT IOReadW(USHORT Port)
VOID IOWriteD(USHORT Port, ULONG Buffer)
VOID IOReadStrW(USHORT Port, PUSHORT Buffer, ULONG Count)
VOID IOWriteStrW(USHORT Port, PUSHORT Buffer, ULONG Count)
ULONG(WINAPI * EMULATOR_IND_PROC)(USHORT Port)
VOID(WINAPI * EMULATOR_OUTSW_PROC)(USHORT Port, PUSHORT Buffer, ULONG Count)
VOID(WINAPI * EMULATOR_INSD_PROC)(USHORT Port, PULONG Buffer, ULONG Count)
VOID(WINAPI * EMULATOR_OUTW_PROC)(USHORT Port, USHORT Data)
VOID IOReadStrD(USHORT Port, PULONG Buffer, ULONG Count)
VOID UnregisterIoPort(USHORT Port)
UCHAR IOReadB(USHORT Port)
VOID FASTCALL EmulatorWriteIo(PFAST486_STATE State, USHORT Port, PVOID Buffer, ULONG DataCount, UCHAR DataSize)
VOID IOWriteStrD(USHORT Port, PULONG Buffer, ULONG Count)
VOID(WINAPI * EMULATOR_INSB_PROC)(USHORT Port, PUCHAR Buffer, ULONG Count)
UCHAR(WINAPI * EMULATOR_INB_PROC)(USHORT Port)
VOID IOWriteStrB(USHORT Port, PUCHAR Buffer, ULONG Count)
VOID RegisterIoPort(USHORT Port, EMULATOR_INB_PROC InHandler, EMULATOR_OUTB_PROC OutHandler)