Useful libraries/drivers to enable direct low level hardware I/O access, such as parallel/LPT port etc., since NT/2000 and upwards in Windows operating systems.
There are two solutions to solving the problem of I/O access under Windows NT. The first solution is to write a device driver which runs in ring 0 (I/O privilege level 0) to access your I/O ports on your behalf. Data can be passed to and from your usermode program to the device driver via IOCTL call...