Исправление сломанного НТВДМ
Проблема:
Около недели назад сломался NTVDM на установке XP.
Симптомы:
Первым признаком было то, что 16-разрядный исполняемый файл, запускаемый во время пакетного файла с автоматическим запуском, зависал и привязывал процессор на 100% до тех пор, пока ntvdm.exe
не был уничтожен, после чего пакетный файл продолжал работать (хотя и без работы, которую выполнял исполняемый файл). должен был сделать). Следующим признаком было то, что другой 16-разрядный исполняемый файл, запускаемый как часть пакетного сценария завершения работы, зависал, вызывая сбой сценария.
Интересно, что они иногда работают (~ 30%). Другими словами, если программа запускается (из диалога « Выполнить ») 10 раз, она может работать правильно примерно 2–4 раза и зависать в остальное время. Это в основном просто с более простыми программами, которые распечатывают что-то или что-то подобное, в отличие от более сложных программ с пользовательскими интерфейсами, такими как edit.com
или command.com
которые, кажется, всегда зависают. Некоторые избранные программы, которые являются чрезвычайно простыми (например crlf.com
: 578 байт, ret.com
1 байт и т. Д.), Всегда запускаются и возвращаются без проблем.
тесты:
Некоторые тесты показывают, что проблема связана с самим NTVDM, а не только с конкретными исполняемыми файлами (которые до недавнего времени работали просто отлично). Например, запуск edit.com
открывает консоль и отображает редактор, но не отвечает на клавиатуру и должен быть уничтожен. На самом деле, даже бег command.com
не будет работать; он открывает консоль и показывает подсказку, а затем просто сидит там, не отвечает.
Я проверил все связанные файлы NTVDM (и многие другие файлы ОС), и все они верны. Я также проверил несколько связанных реестров, и все они также проверяют. Программы отлично работают на других установках XP (что неудивительно, command.com
и edit.com
работают также); так что это конкретная машина. Окружающая среда не изменилась с тех пор, как перестал работать NTVDM, но я все равно проверил это, и в этом нет ничего явно проблемного; temp
и tmp
указывают на существующие каталоги без имен LFN, без разбитых переменных с нулями или чем-то подобным, и хотя path
он длинный, он был таким в течение некоторого времени.
Файлы проверены: ntd*, ntv*, dos*, redir.exe, Mscdexnt.exe, *.sys
Заходы реестра проверены: *\Software\Microsoft\Command processor, *ControlSet*\Control\WoW
,*\Software\Microsoft\Windows NT\CurrentVersion\WOW*
NTVDM и 16-битные приложения прекрасно работают в безопасном режиме на рассматриваемой машине; только в нормальном режиме они висят.
Вопрос:
Кто-нибудь может придумать что-нибудь, что могло бы сломать NTVDM таким образом, чтобы вызвать эти симптомы?
(Для ясности; это НЕ распространенная ошибка «ЦП NTVDM обнаружил недопустимую инструкцию». Также, пожалуйста, не предлагайте использовать Dosbox или другое программное обеспечение VM, потому что это не применимо, и, кроме того, рассматриваемые программы работали до этого). не говоря уже о том, что собственные 16-битные программы Windows не будут работать.)
0 ответов на вопрос
Похожие вопросы
-
4
Как узнать, кто вошел в Windows XP?
-
3
Как обстоят дела с папкой C: \ Program Files \ xerox \ nwwia?
-
3
Почему отключение моего флэш-накопителя приводит к синему экрану?
-
-
4
Любой совет о том, что делать, если получить загадочный синий экран в Windows?
-
2
Есть ли какой-нибудь способ получить пункт меню «отправить в -> получатель почты» в Gmail?
-
2
Почему установщик IIS не может скопировать staxmem.dll, несмотря на то, что он находится в указанной...
-
1
Переключить настройки DNS для каждого пользователя Windows?
-
4
Есть ли способ поделиться сканером многофункционального принтера?
-
8
Как предотвратить сжатие панели задач при использовании удаленного рабочего стола?
-
20
Я что-то упускаю, придерживаясь Windows XP?