Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
DOS Protected Mode Interface
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
== Overview == DPMI stands for DOS Protected Mode Interface. It is an [[API]] that allows a program to run in [[protected mode]] on 80286 series and later processors, and do the calls to [[real mode]] without having to set up these CPU modes manually. DPMI also provides the functions for managing various resources, notably [[Computer Memory|memory]]. This allows the DPMI-enabled programs to work in [[Computer_multitasking|multi-tasking]] OSes, allowing an OS kernel to distribute such resources between multiple applications. DPMI provides only the functionality that needs to be implemented in [[Protection_ring#SUPERVISOR-MODE|supervisor mode]]. It can be thought of as a single-tasking [[microkernel]]. The rest of the functionality is available to DPMI-enabled programs via the calls to real-mode [[DOS]] and [[BIOS]] services, allowing the DPMI API itself to remain mostly independent of DOS. Things that make DPMI API DOS-specific, are just 3 functions for managing DOS memory, and the letter "D" in the "DPMI" acronym. A DPMI service can be 16-bit, 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 a part of a DOS extender such as in [[DOS/4GW]] or [[DOS/32A]], or separate, like [[CWSDPMI]] or [[HDPMI]]. The primary use of DPMI API is to allow [[DOS extender]]s to provide the host-OS-agnostic environment. DOS extender checks the presence of a DPMI kernel, and installs its own only if the one was not installed already. This allows DOS-extended programs to run either in a multitasking OS that provides its own DPMI kernel, or directly under [[bare-metal]] DOS, in which case DOS extender uses its own DPMI kernel. Windows 3.x and 9x's [[user-mode]] kernels are built with a DOS extender, so they fully rely on a DPMI API that is provided by Windows's ring-0 kernel.
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)