DPMI (Interfaz de modo protegido de DOS) es un protocolo de acceso a la memoria con el que un programa de DOS puede usar la memoria adicional de una computadora personal con direcciones superiores a 1 MB, que no está disponible cuando el procesador 80x86 se ejecuta en modo real . Casi todos los extensores de DOS se basan en DPMI y permiten que los programas de DOS accedan a toda la memoria de la computadora y se ejecuten en modo protegido .
El protocolo fue desarrollado por primera vez por Microsoft para Windows 3.0 en 1989 y, posteriormente, el trabajo del proyecto se transfirió a un comité especial con membresía abierta. [1] En 1990, lanzó la versión 0.9, y en 1991 , la versión 1.0. En la versión 0.9 se propuso una característica adicional llamada "True DPMI", pero no se incluyó en el lanzamiento oficial. Sin embargo, está presente en algunos productos. Si bien Windows 3.0 incluía soporte para DPMI 0.9 [2] , la versión 1.0 nunca se incluyó con Microsoft Windows , por lo que muchos programas y extensiones de DOS se escribieron exclusivamente para la versión 0.9. El núcleo DPMI independiente más conocido es CWSDPMI, pero incluso eso solo es compatible con la versión 0.9 y carece de la "traducción de la API de DOS". Actualmente, el único host DPMI independiente que es totalmente compatible con DPMI 1.0 es DPMIONE .
Un servicio DPMI puede ser de 16 bits , 32 bits o "universal" y puede denominarse núcleo, host o servidor DPMI. Lo proporciona el sistema operativo (host DPMI virtual) o un extensor DOS (host DPMI real). El kernel DPMI puede ser parte de un extensor de DOS, como DOS/4GW o DOS/32A , o venir por separado, como CWSDPMI o HDPMI .