DOS Protected Mode Interface

The primary use of DPMI API is to allow DOS extenders to provide the host-OS-agnostic environment.

[4][1] While based on a prototypical version of DPMI for Windows 3.0 in 386 enhanced mode, several features of this implementation were removed from the official specification, including a feature named MS-DOS Extensions[5] or DOS API translation that had been proposed by Ralph Lipe in the original drafts.

The version number 0.9 of the resulting specification was chosen to reflect the stripped-down nature and incomplete status of the standard the members of the DPMI Committee could agree upon.

At the same time that Microsoft developed DPMI for Windows 3.0, another industry alliance including Intel's Software Focus Group,[8][1] Lotus,[8] Digital Research, Interactive Systems and others developed a specification named Extended VCPI (XVCPI) to make the memory management and multitasking capabilities of the 386 available for extended DOS applications.

Another specification named DPMS,[10] developed by Digital Research / Novell around 1992, specifically addresses requirements to easily relocate modified DOS driver software into extended memory and run them in protected mode, thereby reducing their conventional memory footprint down to small stubs.

The DPMI solution appears to be mainly needed to address third party need to get DOS protected mode programs running stably on Windows 3.x before the dominant operating system vendor, Microsoft, could or would address the future of 32-bit Windows.

In addition, Microsoft didn't see the answer to the 32-bit transition as a 32-bit DOS, but rather a 32-bit Windows with a completely different (and incompatible) API.

Beta versions of Qualitas 386MAX implemented "true DPMI" and could run Windows' KRNL386.EXE from the command line, but it was claimed that was disabled in the released product in an internal email.

[12] The KRNL386.SYS (aka "MultiMAX") of DR DOS "Panther" and "StarTrek", which has been under development since 1991,[nb 1] and the EMM386.EXE memory managers of Novell DOS 7,[10] Caldera OpenDOS and DR-DOS 7.02 and higher have built-in support for DPMI when loaded with the /DPMI[=ON] option.

Another variant called PMODE by "TRAN" aka Thomas Pytel was popular with 32-bit programmers during the demo scene of the 1990s.