Memory-Mapped I/O

In the MS-DOS environment, applications often find it advantageous to write directly to the memory on a particular board. In Windows NT, applications cannot write directly to physical addresses. Thus, while an application may use the virtual address 0xE8000, the actual physical address of the memory will not necessarily be the same. In fact, the memory space in the range allowed for boards is initially marked as invalid by the Windows NT memory manager. Any attempt to access memory in this range by unmodified MS-DOS applications results in a page fault. A VDD can control access to the memory range used by its device by using the functions described in the following sections.