This module serves as a general base for any d3d9 hooks to be
implemented. It implements the IRP pattern like the iohook module.
This allows us to create irp handlers which can be chained, easier
structured and maintained compared to static IAT hooking. The latter
was the previous solution and did not work out well anymore for IIDX
which grew regarding d3d9 features.
Only enabled / tested on IIDX CB and SDVX5
The point of this, is to allow rs232 hooks for only the descriptors that we hook.
This is because the emulation here is incomplete.
Although the IOCTL's do end up being passed to the real hardware, the game rejects some of the responses and hangs.
By short circuiting out, and calling the real Comm functions instead, it works.
And hence, card-reader passthrough works on IIDX25+/SDVX5+ finally without eamio-real