This strategy involves modifying the MS-DOS application or its 16-bit driver to intercept the device access at a very high level and route it directly to the VDD, which routes the request to the appropriate kernel-mode driver. In addition to modifying the original application or driver, you must also write a VDD and kernel-mode device driver. Control calls in the original driver that access the hardware directly (I/O port or memory mapped accesses) are replaced by control calls to the VDD. In turn, the VDD calls the kernel-mode device driver.
The following illustration shows how application-based intercepts flow through the various levels of the system from the application to the hardware. Shaded boxes show elements that must be written or modified by the developer.
Application-based intercepts of device access