Наверное многие уже сталкивались в последнее время с таким известным сообщением
винды:
"Инструкция по адресу "***" обратилась к памяти по адресу "***". Память не может
быть "read" (или не может быть "written").
Причин может быть очень и очень много и панацеи от этой беды нет.
Она может вызываться и сетевыми атаками и вирями и троянами и сбоями аппаратной части и программной и т.д.
Вероятность того, что и правда полетела память - очень невелика, потому не торопитесь скачивать программы тесты для проца и памяти, оставьте этот вариант на десерт, если не выйдет справиться другими методами.
По поводу почему такое может быть при дефектах памяти приведу простейший пример:
пусть дефектная память не позволяет устанавливать бит #3 в 1 по некому адресу.
Допустим, один софт записывает туда 0xF7. A второй софт записывает туда 0xF8. В результате первый софт работает не смотря на дефект, а второй нет.
Более частая причина - нестыковка некоторых устаревших (или кривых) программ с Виндами, которые тоже не отличаются особой "прямизной", и железом.
Произведена серия экспериментов:
1. Если ставить вначале ТрафикКомпрессор, затем Аутпост - ошибка есть.
2. Если ставить вначале Аутпост, затем ТрафикКомпрессор - ошибки нет.
3. Если винчестер с системой, где ошибка проявляется, поставить на другую машину, ошибка не исчезает.
4. Но если на машине из п.3 Аутпост с ТрафикКомпрессором снести, то можно ставить их в любой последовательности, ошибки нет.
Отсюда вывод - важно на каком железе и в какой последовательности устанавливается софт...
Особенно часто данная ошибка начинает доставать при установке SP2!
Иногда помогает пройтись по системе прогами типа System Mechanic (
http://www.google.ru/search?hl=ru&newwindow=1&sa=X&a mp;a mp;a mp;a mp;a mp;a mp;a mp;a mp;a mp;a mp;a mp;a mp;a mp;a mp;a mp;a mp;a mp;a mp;a mp;a mp;a mp;a mp;oi=spell&resnum=0&ct=result&cd=1&q=System +Mechanic&spell=1)
И после чистки реестра и мелких глюков такая ошибка бывает и пропадает, но риск при использовании таких программ заключается в том, что пользователь не может видеть - что она там удаляет и предугадать последствия подчас непросто, а они бывают печальными.
Иногда ещё помогает использование режима совместимости с более ранними виндами
Другим вариантов лечения этой беды предлагают переустановку Винды на более старую версию (то есть установка SP1 вместо SP2)... что, нам совершенно не подходит, т.к. на дворе все ж 21-й век, да и многие проги с играми требуют наличие именно SP2, да и защищённее система с ним в разы.
Ещё одним вариантом лечения предлагается установка ВСЕХ! программ самых последних
версий, что тоже не всегда проходит, т.к. даже самые совеременные версии программ запросто могут выдавать эту ошибку!
При детальном анализе выяснилось, что чаще всего виновата функция DEP (Предотвращение выполнения данных) т.к. данная ошибка возникает при обращении какой-либо программы или модуля
программы напрямую к закрытому участку памяти. И теперь становится понятно - почему после установки SP2 эта ошибка встречается нам на порядок чаще, ведь именно в SP2 был добавлен DEP, который может работать как программно, так и аппаратно (на новых процах Intel и AMD он аппаратный и ошибка беспокоит заметно реже)
Цитата из хелпа:
"Предотвращение выполнения данных (DEP) используется для предотвращения проникновения на компьютер вирусов и других угроз безопасности, которые выполняют вредоносный код из областей памяти, которые должны использоваться только операционной системой Windows и другими программами. Такой тип угроз безопасности наносит ущерб, занимая по очереди все области памяти, используемые программой. Затем вирус распространяется и повреждает другие программы, файлы и даже контакты электронной почты.
В отличие от брандмауэра или антивирусной программы средство DEP не препятствует установке потенциально опасных программ на компьютер. Вместо этого выполняется наблюдение, чтобы программы использовали системную память безопасным образом. Для этого DEP работает отдельно или вместе с совместимыми микропроцессорами и помечает некоторые области как «невыполняемые». Если программа пытается запустить код (любой код) из защищенной области, DEP закрывает программу и отображает уведомление. В Windows XP SP2 технология DEP обеспечивается аппаратными и программными средствами..." (
http://www.oszone.net/display.php?id=2342&do=print)
Отсюда вывод:
Если какая-то программа вызывает срабатывание этой функции, Microsoft рекомендует выбрать режим OptOut и добавить эту программу в список исключений.
Однако зачастую программа состоит не из одного исполняемого модуля, а из многих
динамических библиотек, и не всегда имеется возможность точно определить, какая
именно вызывает срабатывание DEP.
Если программа вам очень нужна, а добиться ее работоспособности вышеописанным методом не получается, проще отключить DEP целиком, путем редактирования boot.ini.
Хотя, если вероятность возникновения этой ошибки невелика, и если вы не сталкиваетесь с ней, лучше оставить DEP включенной - так система будет больше
защищена от возможности выполнения вируса.
Cуществует четыре варианта настройки функции DEP
OptIn - (установлено по умолчанию). В этой конфигурации под действие функции DEP
подпадают только основные системные программы и службы.
OptOut - DEP включена для всех процессов и приложений, кроме тех, которые
вручную добавлены пользователем в список исключений.
AlwaysOn - В этом режиме DEP включена всегда для системы в целом, всех процессов
и приложений, не взирая на установки пользователя или производителя ПО.
AlwaysOff - DEP полностью отключена.
Первые два варианта настройки можно переключать с помощью панели управления:
"Система" -> "Дополнительно" -> "Быстродействие" -> кнопка "Параметры" ->
закладка "Предотвращение выполнения данных".
Для полного включения или выключения DEP необходимо вручную отредактировать
находящийся в корне загрузочного раздела диска скрытый файл boot.ini, добавив в
разделе
[operating systems] в конец строки \WINDOWS="Microsoft Windows XP
Professional" /fastdetect
ключ
/NoExecute
с одной из опций:
NoExecute = OptIn
NoExecute = OptOut
NoExecute = AlwaysOn
NoExecute = AlwaysOff
Для редактирования boot.ini нужно в панели управления "Система", на вкладке
"Дополнительно" в разделе "Загрузка и восстановление" нажать кнопку "Параметры"
и в открывшемся окне - кнопку "Правка". Файл boot.ini будет открыт в "Блокноте".
Или: Пуск -> Выполнить -> %systemdrive%\Boot.ini
Или включить отображение системных и защищённых файлов и папок через меню "сервис -> свойства папки-> вид -> снять галочку с пункта "скрывать защищённые системные файлы""
После редактирования boot.ini не забудьте сохранить этот файл и перезагрузить
компьютер, чтобы изменения вступли в силу.
PS По умолчанию стоит подобная строка:
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional
SP2" /noexecute=optin /fastdetect
Можете поставить /NoExecute=AlwaysOff
С другой стороны просто взять и отключить функцию предотвращения выполнения данных (AlwaysOff) - решение проблемы настолько же гениальное, сколь гениальным было бы просто взять и полностью удалить фаервол и антивирь, чтобы в процессе жизнедеятельности не мешали всякие назойливые сообщения о каких-то там обнаруженных вирусах, подозрительной сетевой активности каких-то прог и о прочей фигне... Потому рекомендую вам использовать параметр OptOut - и то, с внимательным прищуром к объекту.