Книга: 500 типичных проблем и их решений при работе на ПК

При запуске программы появляется сообщение Инструкция по адресу 0х77ddb1d1 обратилась к памяти по адресу 0x0080002c. Память не может быть read. Что это такое и как с этим бороться?

При запуске программы появляется сообщение Инструкция по адресу 0х77ddb1d1 обратилась к памяти по адресу 0x0080002c. Память не может быть read. Что это такое и как с этим бороться?

Предположений о причинах возникновения данной проблемы много, часто в качестве ее причины указывают бракованную оперативную память и «разогнанный» процессор или рекомендуют удалить или, наоборот, установить Service Pack 2 для Windows XP.

Я же всегда был склонен подозревать функцию Предотвращения выполнения данных (DEP). Для знакомства с ней откройте Панель управления ? Система (либо нажмите сочетание клавиш Windows+Pause Break), в открывшемся окне Свойства системы перейдите на вкладку Дополнительно и здесь в области настроек Быстродействие нажмите кнопку Параметры. В открывшемся окне перейдите на вкладку Предотвращение выполнения данных.

Как подсказал всезнающий Интернет, существует четыре режима работы функции DEP, выбрать одну из которых можно посредством файла boot.ini:

• OptIn – в этой конфигурации под действие функции DEP подпадают только основные системные программы и службы;

• OptOut – при такой конфигурации под действие функции DEP подпадают все процессы и приложения, кроме тех, которые вручную добавлены пользователем в список исключений;

• AlwaysOn – в этом режиме функция DEP включена всегда для системы в целом, всех процессов и приложений;

• AlwaysOff – при таком режиме функция DEP полностью отключена.

С помощью компонента Панели управления Система можно выбрать лишь один из двух режимов. Для получения большей функциональности найдите на диске С: скрытый файл boot.ini, снимите в свойствах этого файла флажок Только чтение, откройте его в Блокноте и в конец строки WINDOWS=”Microsoft Windows XP Professional” /fastdetect добавьте /NoExecute= AlwaysOff для полного отключения DEP.

Примечание

С помощью командной строки можно проверить текущие параметры DEP. Чтобы определить, доступна ли аппаратная функция DEP, введите команду wmic OS Get DataExecutionPrevention_Available.

Если в результате будет получено значение TRUE, значит, аппаратная функция DEP включена. Чтобы определить текущий режим работы DEP, выполните в консоли команду wmic OS Get DataExecutionPrevention_SupportPolicy.

В результате выполнения команды будет возвращено некоторое числовое значение (см. выше): 0 соответствует режиму AlwaysOff, 1 – AlwaysOn, 2 – OptIn, 3 – OptOut.

Не следует торопиться и отключать данную функцию – сначала узнайте о DEP больше по адресу support.microsoft.com/kb/875352.

Оглавление книги

Оглавление статьи/книги

Генерация: 0.956. Запросов К БД/Cache: 0 / 0
поделиться
Вверх Вниз