
Problem:
Vor etwa einer Woche ist der NTVDM auf einer XP-Installation kaputtgegangen.
Symptome:
Das erste Symptom war, dass eine 16-Bit-ausführbare Datei, die während einer automatisch ausgeführten Batchdatei ausgeführt wird, hängen blieb und die CPU zu 100 % belastete, bis ntvdm.exe
sie beendet wurde. An diesem Punkt wird die Batchdatei weiter ausgeführt (allerdings ohne die Arbeit, die die ausführbare Datei eigentlich hätte erledigen sollen). Das nächste Symptom war, dass eine andere 16-Bit-ausführbare Datei, die als Teil eines Batchskripts zum Herunterfahren ausgeführt wird, hängen blieb, wodurch das Skript fehlschlug.
Interessanterweise tun sieManchmalArbeit (~30%). Mit anderen Worten, wenn ein Programm ausgeführt wird (von derLaufenDialog) 10 Mal, läuft es vielleicht 2-4 Mal richtig und bleibt den Rest der Zeit hängen. Das ist meistens nur bei einfacheren Programmen der Fall, die etwas ausgeben oder so, im Gegensatz zu komplizierteren Programmen mit Benutzeroberflächen wie edit.com
oder command.com
die zustetshängen. Einige ausgewählte Programme, die extrem einfach sind (z. B. crlf.com
: 578 Bytes, ret.com
: 1 Byte usw.)stetsscheinen ohne Probleme zu laufen und zurückzukehren.
Prüfungen:
Einige Tests zeigen, dass das Problem beim NTVDM selbst liegt und nicht nur bei den spezifischen ausführbaren Dateien (die bis vor kurzem ohnehin einwandfrei funktionierten). Beispielsweise edit.com
öffnet das Ausführen eine Konsole und zeigt den Editor an, reagiert aber nicht auf die Tastatur und muss beendet werden. Tatsächlich command.com
funktioniert sogar das Ausführen nicht; es öffnet eine Konsole und zeigt die Eingabeaufforderung an, bleibt dann aber einfach dort und reagiert nicht.
Ich habe alle zugehörigen NTVDM-Dateien (und zahlreiche andere Betriebssystemdateien) geprüft und sie sind alle korrekt. Ich habe auch mehrere zugehörige Registrierungseinträge geprüft und sie sind auch alle in Ordnung. Die Programme laufen auf anderen XP-Installationen einwandfrei (was keine Überraschung ist, da sie dort command.com
auch edit.com
funktionieren); es handelt sich also um diese spezielle Maschine. Die Umgebung hat sich nicht geändert, seit NTVDM nicht mehr funktioniert, aber ich habe sie trotzdem geprüft und es gibt nichts offensichtlich Problematisches; temp
und tmp
sie verweisen auf vorhandene Verzeichnisse ohne LFN-Namen, ohne defekte Variablen mit Nullen oder dergleichen, und obwohl die path
lange ist, ist sie schon seit einiger Zeit so.
Überprüfte Dateien:ntd*, ntv*, dos*, redir.exe, Mscdexnt.exe, *.sys
Registrierungseinträge überprüft: *\Software\Microsoft\Command processor, *ControlSet*\Control\WoW
,*\Software\Microsoft\Windows NT\CurrentVersion\WOW*
Die NTVDM- und 16-Bit-Anwendungen funktionieren auf dem betreffenden Computer im abgesicherten Modus einwandfrei; nur im normalen Modus bleiben sie hängen.
Frage:
Fällt irgendjemandem etwas ein, was das NTVDM so beschädigen könnte, dass diese Symptome auftreten?
(Um es klarzustellen: es ist NICHT der häufigste Fehler„Die NTVDM-CPU hat eine ungültige Anweisung festgestellt.“Bitte schlagen Sie auch nicht vor, Dosbox oder andere VM-Software zu verwenden, da dies nicht anwendbar ist und die betreffenden Programme außerdem vorher funktioniert haben, ganz zu schweigen davon, dass die 16-Bit-Programme von Windows nicht funktionieren.)