Executeable | DOS | Windows 9x/Me | Windows 32 bit | Windows 64 bit | |
---|---|---|---|---|---|
DOS | native | in a DOS Box | InpOut32.dll | doesn't run (exception: DosBox, Wine for Windows) | |
Win16 | direct I/O | - | native | ||
with VxD | Write a VxD-simulating VDD! | ||||
Win32 | direct I/O | Load giveio.sys | Load this giveio.sys! | ||
coming with a VxD (never seen) | Write a simulating .SYS driver! | ||||
with inpout32.dll | native | ||||
with giveio.sys | Should run seemlessly (needless driver silently fails to load) | native | Replace giveio.sys! | ||
with own 32-bit .SYS driver | Insist making a 64-bit driver, or
disassemble .SYS driver (IDA) and port to 64 bit + certify (*) | ||||
Win64 | with certified .SYS driver | - | native |
Generally speaking you need a Virtual Device Driver. You have at lot of options to deal with your problem.
If you encounter that this solution works but is too slow, you have to proceed with a kernel-mode driver below, but it's very likely that the entire project will fail: You have to rewrite the closed-source software.