DOS Protected Mode Interface

From Wikipedia, the free encyclopedia

DPMI (DOS Protected Mode Interface) is the method originally published by Microsoft describing for a DOS program to run in protected mode and to access extended memory under a multitasking operating system like Microsoft Windows 3.0 and later. Besides of this, almost all DOS extenders are based on DPMI and allow DOS programs to use efficiently all memory implemented in the PC and run in protected mode.

This service can be 16-bit or 32-bit, or universal and is called the DPMI kernel, DPMI host or DPMI server. It is provided either by the host operating system (virtual DPMI host) or by a DOS extender (real DPMI host). The DPMI kernel can be merged with the rest of the DOS extedner such as in DOS4GW or DOS/32A, or separated, like CWSDPMI or HDPMI.

The DPMI specification version 0.9 was published in 1990 by the DPMI Committee, and it was extended to version 1.0 in 1991. It is available from Intel Literature Sales. Since version 1.0 was never implemented in Windows, many programs and DOS extenders were written to version 0.9 only, HDPMI however has almost complete DPMI 1.0 implementation by now.

[edit] VCPI

VCPI (Virtual Control Program Interface) was an earlier and incompatible method for doing the same thing. It was limited to 32-bit mode. VCPI was provided by the expanded memory manager in DOS (e.g. CEMM, QEMM, later EMM386). It got eclipsed by DPMI, notably because it was not supported for DOS programs run in Windows 3.0's most powerful 386 enhanced mode and also because VCPI runs programs in Ring 0, which certainly defeated x86 protection. It also did not work with OS/2 2.0 and later. Windows 3.x only supported VCPI in Standard and Real modes. Earlier Windows/386 2.1 was not compatible with DOS extenders at all.

VCPI also had a more limited scope, in that it basically only allowed a protected mode DOS program to run at all when such a program was started from DOS already running inside a virtual 8086 mode task, typically because a memory manager was installed and operating as a virtual [mode] control program for the processor. Indeed, because the virtual 8086 mode fully isolates programs from the hardware, without some support from the control program, it is not possible for another program to switch to protected mode by itself.

[edit] External links

This article was originally based on material from the Free On-line Dictionary of Computing, used with permission. Update as needed.

In other languages