Некоторые пользователи могут столкнуться с внезапно появившимся на экране сообщением «Инструкция по адресу *XXX* обратилась к памяти по адресу *XXX*. Память не может быть «read»». Вместо XXX в данном сообщении обычно располагается совокупность каких-либо чисел и букв, ничего не говорящая пользователю. В данном материале я поясню, в чём суть данной дисфункции, и как её исправить.
Содержание
- «Память не может быть read» – специфика дисфункции
- Как исправить ошибку Инструкция по адресу * обратилась к памяти по адресу *. Память не может быть «read»
- Способ №1. Увеличьте объём виртуальной памяти
- Способ №2. Деинсталлируйте нестабильно работающие программы
- Способ №3. Обновите драйвера к вашим устройствам, установите обновления для вашей ОС
- Способ №4. Выполните откат системы на стабильную раннюю точку
- Способ №5. Выполните проверку целостности системных файлов.
- Способ №6. Отключите функцию предотвращения выполнения данных (DEP)
- Заключение
«Память не может быть read» – специфика дисфункции
Как следует из текста упомянутого сообщения, оно сигнализирует о наличии проблем с памятью, информация с которой не может быть считана по определённым причинам. Обычно это связано с ситуацией, при которой какое-либо приложение попыталось прочесть информацию, находящуюся в определённой странице памяти, не вышло этого выполнить, вследствие чего пользователь получил сообщение о возникшей ошибке.
Причины, по которым некая страница памяти оказалась заблокированной для нужного приложения, могут быть довольно различными. Это может быть некорректная работа планок памяти, устаревшие драйвера к системным устройствам, недостаточный объём файла подкачки, аппаратный конфликт устройств, нарушение целостности системных файлов, «осыпание» винчестера, множество других релевантных факторов.
Как исправить ошибку Инструкция по адресу * обратилась к памяти по адресу *. Память не может быть «read»
Для исправления дисфункции существует несколько эффективных решений, ниже я разберу каждое из них.
Способ №1. Увеличьте объём виртуальной памяти
Часто встречающейся причиной рассматриваемой дисфункции является недостаточный объём файла подкачки (виртуальной памяти).
- Для увеличения данного объёма нажмите на кнопку «Пуск», в строке поиска введите sysdm.cpl, и нажмите ввод.
- Перейдите во вкладку «Дополнительно», рядом с опцией «Быстродействие» нажмите на «Параметры».
- Далее выберите вкладку «Дополнительно», и рядом с параметром «Виртуальная память» нажмите на «Изменить».
- В открывшемся окне виртуальной памяти снимите галочку с опции «Автоматически выбирать объём файла подкачки».
- Затем активируйте опцию «Указать размер», и установите объём файла подкачки вдвое больший, нежели установлено памяти на вашем ПК (к примеру, если у вас 2048, то установите исходный и максимальный размер файла подкачки на 4096). З
- После этого нажмите на «Задать» — «Ок», и перезагрузите ваш ПК.
Пример:
У одного из пользователей во время работы одной игровой программы появилось сообщение «Инструкция по адресу «0x18797ca7» обратилась к памяти по адресу «0x000000». память не может быть «read»». После применения различных способов борьбы с ошибкой пользователь вдвое увеличил файл подкачки, после чего проблема была решена.
Способ №2. Деинсталлируйте нестабильно работающие программы
Если проблема возникла после установки какой-либо внешней программы, то есть вероятность, что данная программа работает нестабильно. Попробуйте поискать альтернативную версию данной программы (к примеру, репак другого автора), и установить её взамен проблемного софта. Если же мы имеем делом с программой-антивирусом или программой-брандмауэром, то попробуйте на время отключить указанный софт, дабы убедиться, что он не является катализатором возникновения проблемы.
Также стоит временно отключить недавно установленные расширения и дополнения для вашего браузера, так как их некорректная работа может вызывать различные проблемы при работе с памятью ПК.
Способ №3. Обновите драйвера к вашим устройствам, установите обновления для вашей ОС
Устаревшие драйвера к аппаратным компонентам системы, как и отсутствие необходимых обновлений для ОС Виндовс, может являться причиной возникновения рассматриваемой проблемы. Установите на вашу ОС все необходимые ей свежие обновления, а для аппаратных составляющих – все свежие драйвера. В установке последних могут помочь такие специальные программы для обновления драйверов уровня «DriverPack Solution»и других аналогов.
Способ №4. Выполните откат системы на стабильную раннюю точку
Довольно действенным способом борьбы с данной проблемой является откат системы на стабильную точку восстановления, при которой упомянутых проблем не наблюдалось.
- Для осуществления данной операции нажмите на кнопку «Пуск», в строке поиска введите rstrui, и нажмите ввод.
- Выберите стабильную точку восстановления, и откатите систему на указанное состояние.
Способ №5. Выполните проверку целостности системных файлов.
В случае, если некоторые системные файлы повреждены, у системы могут возникать проблемы при работе с памятью. Для проверки целостности системных файлов рекомендую использовать функционал утилиты sfc, для чего запустите командную строку от имени администратора, в ней введите:
sfc /scannow
И нажмите ввод. Дождитесь окончания процедуры, а затем перезагрузите компьютер.
Способ №6. Отключите функцию предотвращения выполнения данных (DEP)
Системная функция DEP (от Dáta Execútion Prevéntion – предотвращение выполнения данных), имеющаяся в ОС Виндовс, призвана препятствовать приложениям в выполнении кода, расположенного в «закрытых» областях памяти. При отключении данной функции она перестанет мешать упомянутым приложениям, что в ряде случаев поможет избежать ошибки «Инструкция по адресу * обратилась к памяти по адресу *. Память не может быть «read»».
- Чтобы выключить (или ограничить) работу данной функции нажмите на кнопку «Пуск», в строке поиска введите sysdm.cpl, и нажмите ввод.
- В открывшемся окне свойств системы перейдите во вкладку «Дополнительно», рядом с опцией «Быстродействие» нажмите на «Параметры».
- Здесь перейдите на вкладку «Предотвращение выполнения данных», активируйте опцию «Включить DEP для всех…, кроме..», нажмите на «Добавить» внизу, и укажите системе путь к исполняемому файлу программы, при работе которой вылетает рассматриваемая ошибка.
- После этого нажмите на «Применить», и перезагрузите ваш ПК.
Теперь DEP будет работать для всех программ, кроме указанной вами.
Если же вы хотите полностью отключить DEP, тогда запустите командную строку от имени администратора, и там наберите:
bcdedit.exe/set {current} nx AlwaysOff
Заключение
Причиной ошибки «Память не может быть read» могут быть различные факторы, описанные мной выше. Для решения проблемы выполните весь комплекс перечисленных выше советов, уделив особое внимание увеличению объёма виртуальной памяти и работе с «DEP» – это поможет исправить рассматриваемую в статье ошибку на вашем ПК.
При запуске игр и программ, а в некоторых случаях при включении компьютера вы можете столкнуться с ошибкой «Инструкция по адресу обратилась к памяти по адресу. Память не может быть read» с указанием соответствующих адресов в памяти.
В этой инструкции подробно о том, чем может быть вызвана ошибка «Память не может быть read» и как исправить проблему в Windows 10, 8.1 и Windows 7.
Простые методы исправления ошибки Память не может быть read
Первое, что стоит попробовать, когда рассматриваемая ошибка возникает при запуске конкретной программы:
- Выполните запуск программы от имени администратора (для этого обычно достаточно нажать по ярлыку программы правой кнопкой мыши и выбрать соответствующий пункт контекстного меню).
- Отключить сторонний антивирус при его наличии. Если после отключения антивируса ошибка исчезла, попробуйте добавить программу в исключения антивируса.
- Если у вас Windows 10 и работает Защитник Windows, попробуйте зайти в параметры безопасности (это можно сделать двойным кликом по значку защитника в области уведомлений) — Безопасность устройства — Сведения об изоляции ядра. Если изоляция ядра включена, попробуйте отключить этот пункт.
- Если вы ранее отключали файл подкачки Windows, попробуйте снова его включить и перезагрузить компьютер. Подробнее: Файл подкачки Windows 10 (актуально и для других версий ОС).
Еще один способ, который можно отнести к простым — отключение DEP в Windows. Для этого:
- Запустите командную строку от имени администратора. В командной строке введите следующую команду и нажмите Enter.
-
bcdedit.exe /set {current} nx AlwaysOff
В случае, если при выполнении команды вам сообщают, что значение защищено политикой безопасной загрузки, вы можете отключить DEP для конкретных программ, а не для системы в целом (второй способ из инструкции). Перезагрузите компьютер и проверьте, была ли решена проблема или же ошибка «Память не может быть read» всё так же возникает.
Дополнительные методы решения проблемы
Если описанные ранее способы не помогли, можно использовать следующие методы:
- Выполните проверку целостности системных файлов Windows с помощью sfc. Иногда ошибка может быть результатом повреждения библиотек DLL.
- Если ошибка возникает при загрузке системы, попробуйте выполнить чистую загрузку Windows. Если при чистой загрузке ошибка не появляется, причиной могут быть какие-то недавно добавленные в автозагрузку программы, либо службы Windows. Вспомните, какое ПО вы устанавливали в последнее время, возможно, ошибку вызывает оно.
- Если на вашем компьютере есть точки восстановления на дату, предшествующую появлению проблемы, можно просто использовать точки восстановления.
- Если проблема стала появляться после обновления каких-то драйверов (часто — видеокарты), попробуйте установить предыдущую версию.
- На всякий случай, имеет смысл проверить компьютер на наличие вредоносных программ.
Также иногда ошибка бывает вызвана проблемами самого файла программы либо его несовместимостью с текущей ОС. А в случае, если помимо рассматриваемой ошибки «Память не может быть read» у вас регулярно возникают и другие проблемы (зависания, синие экраны), теоретически ошибка может быть вызвана проблемами с оперативной памятью, здесь может пригодиться: Как проверить оперативную память RAM на ошибки.
Инструкция по адресу «0x*******» обратилась к памяти по адресу «0x*******». Память не может быть «written»
«ok»—завершение приложения
«отмена»—отладка приложения
или
Инструкция по адресу «0x*******» обратилась к памяти по адресу «0x*******». Память не может быть «read»
«ok»—завершение приложения
«отмена»—отладка приложения
В Windows есть такая функция «Предотвращение выполнения данных» (DEP). В некотором роде она предназначена для осуществления безопасности и стабильности системы. Функция DEP не препятствует установке потенциально опасных программ на компьютер, а только следит за тем, как программы используют память, и после установки SP2,
DEP по умолчанию включена для основных программ и служб Windows.
В данном случае ошибка возникает при обращении какой-либо программы или модуля программы напрямую к закрытому участку памяти.
Если при запуске какой-либо игры или программы появляется данная ошибка, Microsoft рекомендует добавить эту программу в список исключений.
Как решить проблему «инструкция по адресу, память не может быть written или read»:
щелчок правой кнопкой мыши на значке «Мой компьютер» -> свойства -> вкладка «дополнительно» -> в поле «быстродействие» нажимаете на кнопку «параметры» -> в появившемся окне на вкладке «предотвращение выполнения данных» ставится флажок напротив «Включить DEP для всех программ и служб, кроме выбранных ниже» -> становится активной кнопка «добавить», нажимая на которую можно добавить в список исключений нужные программы.
Недостаток этого способа в том, что нужно будет добавлять в этот список все игры и программы, которые могут вызвать данную ошибку.
Windows XP
Другой способ избавиться от этой ошибки — полностью проверить всю систему на наличие вирусов антивирусной программой с обновленными базами. Часто именно вредоносные программы вызывают подобные ошибки. Также подобные ошибки сочетаются с некоторыми другими (например, ошибки в каком-либо процессе) при подключении к интернету, либо во время работы в сети интернет.
Если антивирус НЕ обнаружил НИ ОДНОГО вируса, то в вашем случае проще отключить DEP целиком, путем редактирования файла boot.ini.
Файл boot.ini находится на диске C.
В нем ищем строчку:
multi(0)disk(0)rdisk(0)partition(1)WINDOWS=»Microsoft Windows XP Professional RU» /noexecute=optin /fastdetect
И меняем на:
multi(0)disk(0)rdisk(0)partition(1)WINDOWS=»Microsoft Windows XP Professional RU» /noexecute=AlwaysOff /fastdetect
Файл boot.ini может быть вообще скрыт. Чтобы его увидеть и открыть для редактирования нужно в меню «сервис» выбрать «свойства папки» —> «вид» —> убрать галочку с «скрывать защищенные системные файлы».
Windows Vista, Windows 7, Windows 10
– нажмите Пуск;
– в строке «Начать поиск» введите cmd или просто открыв пуск начинайте печатать «cmd»;
– под заголовком Программы щелкните правой кнопкой мыши на cmd.exe или строчке «Командная строка»;
– в появившемся меню выберите «Запуск от имени администратора»;
– введите пароль администратора, если появится соответствующий запрос;
– после приглашения системы введите команду bcdedit.exe /set {current} nx AlwaysOff
– нажмите Enter;
– появится сообщение «Операция успешно завершена»;
– закройте это окно.
Предотвращение выполнения данных (DEP) используется для предотвращения проникновения на компьютер вирусов и других угроз безопасности, которые выполняют вредоносный код из областей памяти, которые должны использоваться только операционной системой Windows и другими программами. Такой тип угроз безопасности наносит ущерб, занимая по очереди все области памяти, используемые программой.
Затем вирус распространяется и повреждает другие программы, файлы и даже контакты электронной почты. Но если вы будете своевременно обновлять базы антивируса и делать полную проверку компьютера хотя бы раз в неделю то все будет хорошо.
Если эта статья вам помогла, напишите в комментариях об этом пожалуйста. Если что-то не получилось, пишите, постараюсь помочь.
Возможное решение:
Вариант 1:
Мой компьютер > Свойства > Дополнительно > в рамке Быстродействие кнопка Параметры > Предотвращение выполнения данных > или поставить галку «Включить DEP только для основных программ и служб Windows» или же при установленной галке «Включить DEP для всех программ и служб, кроме выбранных ниже», затем нажать кнопку «Добавить» и указать путь к программе, вызывающей проблему.
Вариант 2:
1) Открываем в Блокноте файл boot.ini (он находится в корне системного диска и является системным, а потому, чтобы он был виден в Проводнике, должна быть снята опция «Скрывать защищенные системные файлы»);
2) Сохраняем на всякий случай резервную копию этого файла;
3) Меняем в этом файле фрагмент «/NoExecute=OptOut» на «/noexecute=AlwaysOff»
4) Сохраняем файл;
5) Перегружаемся.
Более подробно — здесь.
Причина №2 — конфликт программного обеспечения.
Одна из программ мешает правильно функционировать другой программе и появляется эта ошибка. Чёткого списка конфликтного софта не существует. Тем не менее, в Интернете засветились:
Пакет Norton Internet Security 2007, Kaspersky Internet Security 2009, Outpost Firewall, K-Lite Mega Codec Pack и антивирус Dr.Web, а также драйвера от принтеров фирмы Hewlett-Packard. Сюда же можно отнести и «захламленную» систему. Если Windows простояла полгода или больше, то вполне может появиться эта ошибка, особенно если ОС активно используется, т.е. часто устанавливаются новые программы, игры и драйвера.
Полезная информация: если у вас ТВ-тюнер фирмы Beholder, то не устанавливайте драйвера на него через install.exe. Укажите путь к inf-файлу драйвера вручную, через Мастер установки оборудования (Диспетчер устройств — правой кнопкой на устройство — Обновить драйвер…).
Причина №3 — работа отладчика Dr. Watson.
Для того, чтобы отключить его, откройте реестр (Пуск-Выполнить: regedit) и раскройте ветку HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersion. В ней одним из самых первых разделов будет AeDebug. Щёлкните по нему правой кнопкой и выберите Удалить. Но учтите, что данное действие не претендует на решение ошибки чтения памяти, оно может лишь убрать само сообщение об ошибке.
Причина №4 — русские символы в пути к файлу.
Даже в наши времена необходимо стараться устанавливать игрыпрограммы по нормальным путям, стараясь избегать русских букв в названии, а также слишком длинных путей. Используйте как можно более короткие и понятные пути (например E:ProgramsFraps).
Причина №5 — проблема обращения к системной библиотеке.
Эта ошибка может быть связана с проблемой обращения к системной библиотеке ole32.dll, которая могла быть испорчена или разрегистрирована (например, при установкеудалении других программ). Чтобы пофиксить эту возможную причину, сделайте Пуск-Выполнить: regsvr32 %SystemRoot%system32ole32.dll
Причина №6 — попытка отправить отчёт об ошибке.
Весьма оригинальный совет, в котором было сказано, что подобной ошибки (Память не может быть readwritten) можно избежать, если отключить в WinXP отправку любых отчётов об ошибках в Microsoft. В Свойствах Моего компьютера надо выбрать вверху Дополнительно и нажать кнопку «Отчет об ошибках».
Причина №7 — проблемы с многоядерными процессорами.
Если у вас многоядерный процессор (то есть 2 ядра или больше), то попробуйте скачать маленькую программку CPU-Control и выставить в ней режим «CPU 1». Количество ядер можно посмотреть в Диспетчере устройств (ветка «Процессоры»; 1 процессор = 1 ядро, 2 процессора = 2 ядра и т.д.). Если CPU-Control вам не помог, то выставите в нем значение Auto, закройте его и удалите.
Примечание: на системах с одноядерным процессором эта программа бесполезна.
Причина №8 — проблемы с файлом подкачки.
Рекомендуется проконтролировать обращение системы к этому файлу. Для этого необходимо в Свойствах Моего компьютера выбрать вверху Дополнительно и нажать кнопку «Параметры» (самая верхняя). Откроется новое окно. В нём также надо выбрать вверху Дополнительно и нажать в нижней части кнопку «Изменить». Выделите диск, на котором хотите расположить файл подкачки (желательно, чтобы он был поменьше фрагментирован). Поставьте точку напротив пункта Особый размер и введите желаемый размер. Минимальный и максимальный объём желательно выставлять одинаковым. Перед выходом необходимо нажать кнопку «Задать». При уменьшенииотключении файла подкачки потребуется перезагрузка. При увеличениивключении файла подкачки перезагрузка обычно не нужна. Ниже будут приведены рекомендуемые значения для объёма файла подкачки в зависимости от объёма RAM самого компьютера:
512Мб RAM = 1536Мб для файла подкачки
1024Мб RAM = 1024Мб для файла подкачки
1536Мб RAM = 512Мб для файла подкачки
2048Мб RAM = 256Мб для файла подкачки или вообще 0Мб
Причина №9 — несовместимость оперативной памяти.
Маловероятно, но подобная ошибка может быть вызвана в том случае, если в паре работают два модуля оперативной памяти от разных производителей. Соответственно, проверить это просто: просто вытащите один из модулей.
Причина №10 — плохой блок питания.
Ошибка чтения памяти может быть вызвана и некачественнымстарым БП. Конечно, это очень уж маловероятно, но наиболее идеальным вариантом будет подключение компьютера к заведомо нормальному блоку питания. Если же у вас нет возможности одолжить у кого-нибудь БП, то просто отключите различную мелочь, т.е. CDDVD-привод, карты расширения, установленные в PCI-слотах, принтер и т.д.
Причина №11 — некорректно установленные тайминги памяти
Один из наиболее «тяжёлых» случаев*. Встречается редко и наукой не подтверждён. Кто знает о таймингах — поймут сами, что делать. Кто не знает — значит это не ваш случай.
Причина №12 — перегрев памяти.
Безусловно, модули RAM нагреваются во время работы, но дополнительное охлаждение требуется лишь конкретным планкам памяти, например, которые разогнаны самим производителем и потому нуждаются в хорошем охлаждении. Но обычная память (которая стоит у 95% пользователей) нормально работает даже в плохо вентилируемых корпусах. Хотя в данном случае всё это можно проверить очень легко — достаточно просто открыть корпус.