Если судить по форумам, то по Интернету ходит поистине огромное количество слухов, мнений и предположений на тему возникновения этой ошибки. Достаточно сказать, что Яндекс по запросу "Память не может быть read" находит два миллиона страниц. Внушительная цифра, согласитесь.
Причина возникновения ошибки довольно проста: менеджер виртуальной памяти обнаруживает попытку доступа к страницам памяти, доступ к которым не разрешён для данного процесса. Но для Windows ошибка эта не смертельная, поэтому вместо "синего экрана смерти" лишь выдаётся сообщение об ошибке "Память не может быть...".
Если говорить упрощённо, то для каждой программы в памяти выделяется некое пространство. И если приложение начинает лезть за пределы этого пространства, т.е. пытается оттуда что-то прочитать (read) или что-то записать туда (written), то появится такая ошибка. Microsoft потому и не даёт никаких рекомендаций по устранению этой ошибки, ведь это не её вина, что какие-то пользовательские программы не могут адекватно распоряжаться выданной им памятью. Да-да, вы правильно поняли - виноваты криворукие разработчики игр и программ. Именно из-за их ошибок вы теперь имеете счастье наблюдать
Многие ошибочно говорят:"Ну и пускай лезет игра за пределы памяти! Мне пофиг!! Хочу играть!!!" - так думает подавляющее большинство пользователей. И, в принципе, их понять можно. Только вот представьте себе, что будет, если ваша любимая игрушка вылезет за пределы отведенной ей памяти и решит записать часть игрового кода в тот блок памяти, в котором сейчас находится ядро операционной системы...
"Память не может быть read\written".
Самые распространённые мнения о причинах появления этой ошибки
1) Плохая память - на многих форумах первым делом советуют проверить оперативную память (RAM), но на самом деле битая память ведёт себя несколько по-иному. Как правило, это либо мгновенная перезагрузка компьютера, либо просто зависание\вылет в различных приложениях. Более того, зачастую даже Windows не загружается в случае повреждения оперативной памяти. Впрочем, в Возможной причине №9 имеются советы, которые касаются оперативки, так что при желании можете попробовать повозиться с ней.
2) Вирусная атака - вирусная активность обычно проявляется несколько по-иному. Зачастую это выглядит как отказ в запуске заражённых приложений, отсутствие Рабочего стола (т.е. Проводник\explorer.exe не запускается) или 100% загрузка процессора. Узнать про возможные виды вирусов и их признаков, а также способы их лечения можно тут. Но, естественно, это ещё не означает, что можно обойтись без антивируса. Появилась ошибка - проверяйте комп на вирусы. Особенно если раньше такой ошибки не было.
3) Отсутствие обновлений для Windows - на самом деле количество установленных обновлений никак не влияет на данную ошибку. Иными словами, можно установить стандартную WinXP и спокойно сидеть за компьютером, а можно скачать все апдейты, которые только есть, но всё равно получать эту ошибку, хотя в Интернете иногда можно встретить советы по удалению того или иного обновления. Кроме того, многие пользователи ставят комплексные пакеты обновлений (более известные как Service Pack), которые содержат несколько сотен обновлений, что делает невозможным определение виновника.
4) Лицензионная Windows не подвержена ошибкам - между лицензионной и пиратской версией нет никаких различий (кроме цены разве что). Впрочем, наличие лицензионного диска с дистрибутивом ОС даст вам своеобразную гарантию, что у вас нормальная система, а не какая-нибудь сборка.
Возможные причины ошибки "Память не может быть read\written"
Возможная причина №1 - служба DEP
Чаще всего можно увидеть советы по отключению службы DEP (Data execution prevention = Предотвращение выполнения данных). Для этого необходимо открыть файл C:\boot.ini и заменить в нём строку /noexecute=optin на /noexecute=AlwaysOff . Для применения изменений необходимо перезагрузить компьютер. Данное действие помогает где-то в 20% всех случаев. Если у вас вообще нет параметра noexecute, то просто допишите его вручную (как на скриншоте).
Справка: файл boot.ini является одним из важнейших системных файлов, поэтому по умолчанию он скрыт. Соответственно, для его отображения потребуется разрешить отображение скрытых и системных файлов. Также его можно открыть для редактирования, если в Свойствах Моего компьютера выбрать вверху Дополнительно и нажать кнопку "Параметры" (самая нижняя). В открывшемся окне нажмите кнопку "Правка", чтобы открыть boot.ini для редактирования.
Возможная причина №2 - конфликт программного обеспечения
Проще говоря, одна из программ мешает правильно функционировать другой программе и появляется эта ошибка. Понятное дело, что чёткого списка конфликтного софта не существует. Тем не менее, в Интернете засветился пакет Norton Internet Security 2007, Kaspersky Internet Security 2009, Outpost Firewall, K-Lite Mega Codec Pack и антивирус Dr.Web, а также драйвера от принтеров фирмы Hewlett-Packard. Сюда же можно отнести и "захламленную" систему. Если Windows простояла полгода или больше, то вполне может появиться эта ошибка, особенно если ОС активно используется, т.е. часто устанавливаются новые программы, игры и драйвера.
Если у вас лицензионная копия игры, то зайдите на диск игры и поищите там установщик DirectX (ну или скачайте из Инета последнюю версию DirectX). Если в вашей системе будет более старая версия DirectX , чем у установщика, то необходимые файлы и библиотеки будут обновлены (если версия такая же или выше, то сразу будет выведено сообщение о завершении установки).
Попробуйте также загрузиться в Безопасном режиме. Если там проблемное приложение запустится нормально, то значит, виновник ошибки грузится при обычной загрузке системы. Про то, как можно почистить систему вообще и автозагрузку в частности, можно прочитать здесь.http://forum.igromania.ru/showthread.php?t=25184
Справка: при загрузке в Безопасном режиме не загружаются видеодрайвера, поэтому протестировать игры в нём не получиться. Если необходимо протестировать программу, использующую сеть, то выбирайте не обычный Безопасный режим, а с поддержкой сети.
Возможная ошибка №3 - работа отладчика Dr. Watson
В Windows XP есть дебаггер(http://ru.wikipedia.org/wiki/Отладчик) под названием Dr. Watson. Для того, чтобы отключить его, откройте реестр (Пуск-Выполнить: regedit) и раскройте ветку HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion. В ней одним из самых первых разделов будет AeDebug. Щёлкните по нему правой кнопкой и выберите Удалить. Но учтите, что данное действие не претендует на решение ошибки чтения памяти, оно может лишь убрать само сообщение об ошибке.
Возможная ошибка №4 - путь установки
C:\Program Files\Имя_разработчика\Имя_издателя \Имя_локализатора\Имя_основной_папки... Признайтесь, вы ведь часто видели подобный путь при установке очередной игры? Но мало кто утруждает себя тем, чтобы исправить это дикое нагромождение папок на что-нибудь более простое и понятное. Однако длинный путь (да ещё и с русскими буквами) вполне может послужить причиной возникновения ошибки чтения памяти. Яркий тому пример - всем известный Steam. Чуть ли не в половине случаев Steam-игры вываливались с сообщением об ошибке чтения памяти. А всё потому, что пользователи ставили Steam куда попало (например, C:\Игры\Программы для игр\Steam вместо D:\Games\Steam). То же самое касается и программ. Какая-то софтина вываливается с ошибкой про память? Удалите её, а затем установите заново, но при этом используйте как можно более короткий путь.
Это интересно: если установка по более короткому пути не поможет, то попробуйте установить проблемное приложение на другой раздел. Самому довелось наблюдать, как известный пакет для видеомонтажа Pinnacle Studio вываливался с ошибкой "Память не может быть written" при попытке открытия видеофайлов. Несмотря на то, что был установлен по нормальному пути (C:\Program Files\Pinnacle Studio). А вот когда его переустановили в E:\Pinnacle Studio, нормально заработал.
Возможная ошибка №5 - проблема обращения к системной библиотеке
Эта ошибка может быть связана с проблемой обращения к системной библиотеке ole32.dll, которая могла быть испорчена или разрегистрирована (например, при установке\удалении других программ). Чтобы пофиксить эту возможную причину, сделайте Пуск-Выполнить: regsvr32 %SystemRoot%\system32\ole32.dll