Описание:
Проблема временами возникает на различных версиях Windows XP, не зависит от наличия сервис-паков или комплектующих. Такая проблема не возникает на других версиях Windows (98, ME, 2000). Из этого следует, что источник проблемы нужно искать в программном обеспечении, установленном на конкретном комьютере.
Чистые системы (Windows XP Home Edition, Professional Edition и Professional Corporate Edition, без установленных сторонних драйверов и программ) показали, что проблема не относится к операционной системе - все DOS-программы использующие графику работали нормально.
В процессе решения данной проблемы обнаружилось, что Windows XP имеет некоторые отличия в реализации определенных ACPI-функций в сравнении с предыдущими версиями Windows. После вызова этих функций DOS-приложения продолжают работать, но по какой-то причине не могут получить достаточно процессорного времени, что характеризуется как бы "зависанием" программы. Как было сказано выше, Windows XP сама по себе не блокирует DOS-приложения. Таким образом, это должно быть стороннее программное обеспечение, установленное на данном компьютере, которое использует доступ к ресурсам материнской платы или процессора.
Последним шагом было определение программ, которые могут вызывать данную проблему. Как выяснилось, большинство приложений, которые пытаются напрямую контролировать ресурсы материнской платы, могут привести к таким последствиям. Программное охлаждение процессора, приложения, контролирующие скорости вращения вентиляторов или даже мониторы температуры - всё это потенциально может вызывать блокировку DOS-приложений. Решение:
Список программ, которые препятствуют запуску DOS-программ с использованием графических режимов под Windows XP:
S2kControl
Speedfan
Motherboard Monitor
EasyTune (?)
...
возможно любая другая, контролирующая параметры материнской платы, например, скорость вращения вентиляторов, температурные датчики, опцию Bus Disconnect и программное охлаждение центрального процессора
Итак, шаги, требуемые для разрешения проблемы:
1. Определить программу, предположительно вызывающую проблему
2. Предотвратить ее запуск при следующей перезагрузке (просто остановки и выгрузки из памяти как правило недостаточно): если есть, отменить такую возможность в самой программе; удалить ярлык из папки автозагрузки; при необходимости использовать msconfig.exe; если не помогает - полностью удалить программу
3. Перезагрузить систему
4. Запустить DOS-программу