Работа с приложениями на Windows VDS
NTVDM является системным компонентом всех выпусков IA-32 семейства Windows NT, который позволяет выполнять 16-битные Windows и 16-битные / 32-разрядные приложения DOS.
Он не входит в состав 64-разрядных версий. 32-разрядный исполняемый файл пользовательского режима Windows NT, который составляет основу для одной среды DOS (или Windows 3.x).
Для выполнения DOS-программ NTVDM загружает NTIO.SYS, который, в свою очередь, загружает NTDOS.SYS, который выполняет измененный COMMAND.COM для запуска приложения, которое было передано в NTVDM в качестве аргумента командной строки. 16-разрядные системные файлы в режиме реального времени урезают вывод их MS-DOS 5.0 эквивалентов IO.SYS, MSDOS.SYS со всеми проводными предположениями в файловой системе FAT и с использованием недопустимого кода операции 0xC4 0xC4 чтобы перейти к 32-разрядному NTVDM для обработки запросов для всех этим работ необходима аренда выделенного сервера для бесперебойного и качественного обслуживания. Первоначально NTDOS сообщила о версии DOS 30,00 для программ, но вскоре она была изменена, чтобы сообщить версию 5.00 в INT 21h / AH = 30h и 5.50 в INT 21h / AX = 3306h, чтобы больше программ запускалось без изменений. Это справедливо даже в новейших версиях Windows; многие дополнительные функции и команды MS-DOS, представленные в версиях MS-DOS версии 6.x и в Windows 9x отсутствуют.
16-разрядные приложения запускаются в своем потоке в рамках одного многопотокового 32-разрядного NTVDM-процесса. 16-разрядные процессы по умолчанию совместно многозадачны по отношению друг к другу, если в поле «Выполнить» или в ярлыке приложения не указано значение «Запустить в отдельном пространстве памяти». NTVDM эмулирует вызовы и таблицы BIOS, а также ядро Windows 3.1 и 16-битные заглушки API. 32-битный слой перевода WoW раздирает 16-разрядные подпрограммы API.
32-разрядная эмуляция DOS присутствует для интерфейса защищенного режима DOS (DPMI) и 32-разрядного доступа к памяти. Этот уровень преобразует необходимые расширенные и расширенные вызовы памяти для функций DOS в вызовы памяти Windows NT. wowexec.exe — это уровень эмуляции, который эмулирует 16-битную Windows. В Windows 2000 и Windows XP появилась эмуляция Sound Blaster 2.0. 16-разрядные драйверы виртуальных устройств и драйверы устройств блока DOS (например, RAM-диски) не поддерживаются. Межпроцессная связь с другими подсистемами может осуществляться через OLE, DDE и именованные каналы.
Поскольку виртуальный режим 8086 недоступен для процессоров, отличных от x86, NTVDM вместо этого был реализован как полный эмулятор в этих версиях NT. До Windows NT 3.51 была доступна только эмуляция 80286. В Windows NT 4.0 была добавлена эмуляция 486.