I need TVicHW32 or a similar device driver to work with I/O ports under Windows NT but what advantage is TVicHW32 under Windows 95/98/ME where I can reach all ports directly from my application?
It is almost true that you can reach all ports under Windows 95/98/ME. Windows is a multitasking system where any device can be used by more than one device concurrently, so Windows has a way to protect devices from getting more than one instruction at the same time. To control access to I/O addresses Windows 9X uses a bit-mapped list of ports called an I/O Permission Map (IOPM). A 1 bit on this list means ‘access denied” and a 0 bit means “access granted”. It is no problem to access a port from a Win32 application if an access is granted in the IOPM, but it is not simple if access is denied. The drivers (VxD’s) call a system service to trap a particular port and register a callback function, called a “port trap handler”. The system responds by setting the port’s byte in the IOPM. When a Win32 application accesses that port and causes a fault, the system fault handler calls the VxD’s registered port trap handler. This port trap handler can do anything in response to the I/O access from