Большое количество пользователей c новыми компьютерами где использовались многоядерные процессоры, жаловались на странные проблемы с DOS программами (такие как Fox26, NC) приводящие к их полной или частичной неработоспособности. Это происходит потому, что производители материнских плат или Windows пытается распределить код программы на несколько ядер одновременно, и это не очень-то получается.
для решения этой проблемы необходимо запретить для DOS программ использовать больше одного процессора.
1. Это можно сделать из Task Manager (Диспетчер Задач), но это не удобно, так как нужно это делать каждый раз вручную после запуска DOS программы.
2. Пропатчить файл ntvdm.exe.
Для этого необходима утилита imagecfg.exe, с ее помощью нужно пропатчить файл ntvdm.exe. После этого проблемы исчезнут. Можно поступить еще проще - взять готовый пропатченный ntvdm и смело заменить его в системе. Записать в каталоги
\Windows\system32
\Windows\system32\dllcache\
и если есть
\Windows\I386\
Правда, ОС через некоторое время отреагирует - на экране появится окно с предупреждением о том, что системные файлы заменены. Отвечаем Windows, что так и нужно, и чтобы она оставила измененный файл. Если на этот вопрос не ответить, то система автоматически без вашего ведома вернет оригинальный ntvdm на место из резервной копии.
Хочется заметить, что можно смело заменять ntvdm одной системы другим, даже если они не совпадают по размеру (SP1, SP2, SP3).
3. Использовать небольшую утилиту ICE Affinity, которая решает эту проблему. ICE Affinity запускает любое приложение из командной строки и указывает какие процессоры в системе можно использовать для запуска этого приложения.
Пример:
ICEAffinity.exe <Affinity Mask> <Application Path> [Application command line parameters]
<Affinity Mask> - это целое число, в котором каждый бит отмечает процессор, на котором разрешено запускать этот процесс.
Пример:
ICEAffinity.exe 1 NC.exe - Используется только первый процессор
ICEAffinity.exe 2 "C:\NC\NC.exe" - Используется только второй процессор
ICEAffinity.exe 3 "C:\NC\NC.exe" -CONNECT -LAN - Используются оба процессора
Скачать ICEAffinity.exe
|