Содержание:
Установка накопительных обновлений, время от времени выпускаемых Microsoft, является залогом стабильности и безопасности работы системы, но иногда такие пакеты обновлений сами становятся причиной неполадок в Windows. Примером тому может служить ошибка 0xc0000005, возникающая при запуске приложений в Windows 7, 8.1 и 10. Появляющееся же при этом диалоговое окошко не предлагает ничего иного, как закрыть сбойную программу.
Формулировка содержимого окошка может быть разным: ошибка при инициализации приложения, ошибка при запуске приложения, Error: access violation. При попытке открыть игру пользователь может получать ошибку вида unmanaged exception 0xc0000005 или unhandled exception access violation c0000005. Иногда при запуске приложения падает вся система, но сути это не меняет, так как во всех случаях в описании присутствует код 0xC0000005.
К сожалению, у этой ошибки нет подробного описания, которое могло бы точно указать на причину её появления, но чаще всего она связана с неправильной работой «сырых» обновлений, приводящих к сбоям в обращении к памяти. В Windows 7 и 8.1 появление ошибки с указанным кодом регистрировалось после установки обновления KB2859537, а также KB2872339, KB2882822 и KB971033, KB2876315 и KB2862772. Все эти пакеты в процессе установки заменяют файлы ядра, что и приводит к описанным выше последствиям. Соответственно, решением проблемы может стать удаление этих обновлений.
Удаление обновлений через интерфейс
Наиболее простой и очевидный способ. Запустите через Панель управления апплет «Установка и удаление программ», нажмите ссылку «Просмотр установленных обновлений», найдите в списке проблемный пакет (найти его проще всего, воспользовавшись поисковой строкой) и удалите его, после чего перезагрузите компьютер.
Чтобы система не установила его повторно, автоматическое обновление лучше всего отключить, а установку обновлений в будущем контролировать вручную.
Удаление пакетов через командную строку
Удалить «плохое» обновление можно через командную строку, используя консольную утилиту wusa. Запустите консоль CMD от имени администратора и выполните в ней команду вида wusa.exe /uninstall /kb№_пакета. Например, в случае с обновлением KB2859537 команда будет выглядеть следующим образом:
wusa.exe /uninstall /kb:KB2859537
Предлагаемую перезагрузку откладываем на потом и точно таким же способом удаляем все прочие «неправильные» обновления.
После этого перезагружаем систему и переводим установку обновлений в ручной режим (это можно сделать и до удаления пакетов). Может статься, что утилита wusa.exe, как и все приложения, при запуске также будет выдавать ошибку 0xC0000005. В этом случае повторите все действия, но уже в безопасном режиме.
Откат к предыдущей точке восстановления
В ряде случаев восстановить нормальную работу системы позволяет обычный откат к предыдущей системной точке восстановления. Запустите командой rstrui инструмент восстановления и проследуйте указаниям мастера.
Если произвести восстановление из-под работающей системы не получается, загрузитесь с установочного диска и выполните восстановления из среды WinPE.
В крайнем случае с её же помощью можно откатиться к более ранней версии Windows, если до этого выполнялось мажорное обновление.
С помощью утилиты DISM
Если удалить пакеты обновлений приведёнными выше способами не удалось, можно применить более эффективный, но и в то же время более сложный метод. Загрузитесь с установочного диска в среду восстановления, откройте командную строку и определите для начала букву системного диска. Проще всего это сделать, выполнив команду notepad, а затем выбрав в меню открывшегося блокнота опцию «Сохранить как».
Вероятнее всего, в загрузочной среде системный раздел у вас будет иметь букву D. Теперь выполните в консоли такую команду:
DISM /Image:D: /Get-Packages
При этом вы получите список разных пакетов. Найдите в нём пакет, содержащий в названии KB2859537 или другой (в нашем примере это KB4022405), выделите мышкой и скопируйте его полное имя в буфер обмена как показано на скриншоте.
Теперь выполните в консоли такую команду, подставив на место FullName ранее скопированное полное имя пакета:
DISM /Image:D: /Remove-Package /PackageName:FullName
В случае удачного выполнения команды само обновление будет удалено, но запись в журнале останется, что, однако, никак не будет влиять на работу программ и системы.
Отключение функции DEP
Функция DEP является частью безопасности системы, обеспечивающей дополнительную защиту от вирусов, но в редких случаях при запуске приложений она может показывать окошко с кодом ошибки 0xc0000005. Попробуйте отключить её, выполнив в запущенной с повышенными правами консоли CMD команду bcdedit.exe /set {current} nx AlwaysOff. После этого перезагрузите ПК и проверьте, не исчезла ли ошибка 0xc0000005.
Функцию DEP можно отключить и для определённых программ. Для этого зайдите в «Дополнительные параметры системы».
Потом в параметрах быстродействия на вкладке «Предотвращение выполнения данных» активируйте радиокнопку как показано на скриншоте, нажмите «Добавить» и укажите путь к исполняемому файлу программы, которую желаете внести в список исключений.
Полностью отключается DEP командой bcdedit.exe /set {current} nx OptIn.
Устранение ошибки 0xc0000005 в Windows 10
А вот с «десяткой» всё обстоит несколько иначе. Вероятность, что причиной ошибки с кодом исключения 0xc0000005 стало какое-то некачественное обновление остаётся, но чаще всего её вызывает конфликт системы с некоторыми видами программного обеспечения. Как правило, это различные криптографические приложения, в частности программные продукты КриптоПРО. Удалите с компьютера данное ПО, после чего тщательно очистите реестр вручную или с помощью утилит типа Wise Registry Cleaner.
Что еще следует проверить в Windows 10
Привести к ошибке может конфликт антивирусных приложений. Если у вас установлено две антивирусных программы, отключите защиту в реальном времени сначала для одного антивируса, а затем для второго и посмотрите, как на это отреагирует система. Удалите один из антивирусов или замените его другим (вообще устанавливать на ПК два антивируса не рекомендуется). В целом мы рассмотрели, как исправить ошибку 0xc0000005 в Windows 7/10, но есть еще пара нюансов, о которых не помешает знать.
Используйте по возможности лицензионные дистрибутивы Windows, ведь согласно статистке, чаще всего с ошибкой 0xc0000005 приходится сталкиваться тем людям, которые устанавливают «левые» сборки и применяют к ним различные активаторы. Если вы до этого обновляли драйвера, особенно драйвер видеокарты, попробуйте откатиться к предыдущим версиям. Ну и, поскольку ошибка связана с взаимодействием приложений с памятью, не будет лишним протестировать ОЗУ вашего компьютера встроенной системной утилитой или сторонней программкой Memtest.