Ошибка "память не может быть read"
Наверняка уважаемый пользователь вы сталкливались с этой проблемой
когда казалось бы все идет хорошо как вдруг вылетает табличка с
надписью "память не может быть read" и собственно на этом все и
заканчивается приложение как правило закрывается и все дальнейшие
попытки приводят к тому же результату . Ч то это за ошибка и как с ней
бороться - тема данной статьи .
Во всем виновата функция "Предотвращение выполнения данных"
(DEP)!!!
Т.к. данная ошибка возникает при обращении какой-либо программы или модуля
программы напрямую к закрытому участку памяти.
Краткая компиляция, из Хепа:
"...в отличие от брандмауэра или антивирусного программного обеспечения функция
DEP не препятствует установке потенциально опасных программ на компьютер, а
только следит за тем, как программы используют память, и после установки SP2,
DEP по умолчанию включена для основных программ и служб Windows."
И немножко комментариев.
Если какая-то программа вызывает срабатывание этой функции, 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
Или: C\Boot.ini открыть с помощью Блокнот.
После редактирования boot.ini не забудьте сохранить этот файл и перезагрузить
компьютер, чтобы изменения вступли в силу.
PS По умолчанию стоит строка
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional
SP2" /noexecute=optin /fastdetect
устанавливаем /NoExecute=AlwaysOff
Все проблема решена .

|