Хотя эту ошибку, характерную для Windows 10, нельзя назвать распространённой, но если она появилась, то будет досаждать каждый раз, когда вы запускаете определённый класс программ или компьютерную игру. В заголовке ошибочного сообщения содержится фраза Bad Image, но в данном случае её перевод как «плохая картинка» неверен – здесь под словом Image подразумевается исполняемый файл или важная компонента операционной системы. Нижеследующий пояснительный текст также нельзя назвать слишком информативным, а его первая часть («Программа не предназначена для запуска в Windows») даже может ввести в заблуждение и обычно трактуется неправильно.
Попробуем разобраться, что же на самом деле приводит к появлению ошибки и можно ли её исправить.
Причины появления ошибки
Впрочем, в большинстве случаев определённая конкретика в тексте сообщения об ошибке 0xc0000020 всё же имеется. Речь идёт о таком распространённом случае, как повреждение одной из библиотек DLL или использование её неправильной версии, и тогда в тексте сообщения обычно указывается имя этой библиотеки, что существенно упрощает диагностирование.
Чаще всего повреждение системной библиотеки происходит в результате каких-либо сбоев в работе компьютера, иногда после некорректной установки или удаления программ, зачастую напрямую не связанных с указанным модулем DLL (хотя связь на самом деле имеется, просто она не видна). Реже проблема возникает по причине скачивания и установки файла с расширением DLL со стороннего сайта. Именно в таких случаях в сообщении об ошибке и фигурирует название повреждённого модуля.
В случаях, когда имя файла DLL начинается с набора символов msvcp или msvcr, а также если указан модуль ucrtbase.dll, то, скорее всего, повреждения касаются Visual C++ Redistributable, а вернее – библиотеки её компонентов.
Когда указанный в ошибочном сообщении файл расположен в системном каталоге DriverStore, то очевидно, что проблема возникает из-за неправильно работающего или повреждённого драйвера конкретного устройства. В этом случае тоже не составит труда по имени DLL-файла выяснить, какой именно драйвер вызывает сбой и попробовать переустановить его, желательно предварительно удалив старую версию и скачав новую с официального источника. Обычно такое случается с драйвером видеокарты, а если ошибка появляется при запуске игры, то об этом можно говорить почти со стопроцентной уверенностью.
Общий алгоритм действий следующий:
- с помощью интернета ищем, частью какой компоненты Windows является модуль DLL, фигурирующий в тексте ошибки 0xc0000020;
- переустанавливаем эту компоненту (программу, драйвер, библиотеку) и проверяем, исчезла ли проблема.
Впрочем, из этого правила есть и исключения. Например, когда библиотека, указанная в сообщении, не является системной. То есть она является компонентой какого-либо приложения (игры или программы), не являющегося лицензионным. В этом случае срабатывание может происходить по вине встроенного или стороннего антивирусного ПО.
Тогда алгоритм действий будет следующим: приложение, вызвавшее ошибку, удаляется, антивирус отключается. Затем программа инсталлируется снова и запускается без антивируса. Если всё нормально, нужно просто добавить это приложение (или папку, в которой оно установлено) в исключения антивируса. Если ошибка всё равно появляется, очевидно, что её причиной является сама программа, содержащая ошибки.
Как исправить в Windows 10 ошибку 0xc0000020
Рассмотрим основные способы решения проблемы.
Проверка системных файлов
Первое, что необходимо сделать при возникновении подобных ошибок, – проверить целостность системных файлов, благо, что для этого в Windows имеется специальная утилита, умеющая не только проверять, но и исправлять найденные ошибки. Запускать её нужно из командной строки. Сначала в окне терминала набираем sfc /scannow, а после нажатия Enter – строку DISM /ONLINE /CLEANUP-IMAGE /RESTOREHEALTH.
Переустановка Visual C++ Redistributable
Напоминаем, этот пакет можно считать виновником, если в ошибочном сообщении присутствуют имена msvcr или msvcp. На вашем компьютере этот пакет может просто отсутствовать, или он установлен с ошибками, или же была инсталлирована версия не той разрядности.
К примеру, если в ошибке присутствует имя файла msvcr110.dll, то через поиск можно выяснить, что он является компонентой пакета Visual C++ Redistributable 2012, который и потребуется установить или переустановить.
Но для начала необходимо просмотреть, какая версия Visual C++ установлена у вас. Для этого нужно зайти в утилиту «Удаление программ», через панель управления или посредством нажатия комбинации Win+R и ввода команды appwiz.cpl.
Убедитесь, что в системе присутствуют версии обеих разрядностей, 32- и 64-битные. Выделите пакет Visual C++ Redistributable мышкой, после чего кликните по кнопке «Изменить» в верхней панели. В новом окошке необходимо нажать кнопку Repair, после чего система попытается восстановить пакет, устранив при этом ошибки установщика.
Желательно проделать эту операцию со всеми вариантами Visual C++, присутствующими в списке.
СОВЕТ. Если в ошибке указывается другая компонента Windows, например, Office, то нужно попытаться переустановить повторным запуском установщика.
Когда в списке установленный пакет файлов Visual C++ Redistributable конкретной разрядности отсутствует, необходимо его скачать с официального сайта и инсталлировать. Конкретный год пакета С++ имеется возможность определить непосредственно по имени фигурирующего в сообщении файла, скачивать нужно только компоненты, соответствующие этому году, причём устанавливать нужно и 32-битную (x86) версию – в некоторых случаях 64-разрядная Windows 10 использует 32-битные библиотеки С++. Так, довольно востребованная игровая платформа Origin, пользующаяся популярностью у геймеров, часто ссылается на обе библиотеки, и если пакет меньшей разрядности отсутствует, появится ошибка с кодом 0xc0000020.
Драйвер видеокарты
О том, что ошибка исполнения 0xc0000020 связана с некорректно работающими драйверами видеокарты, будет свидетельствовать наличие в сообщении имён файлов библиотек atiglpxx или atiuxpag. Стандартный способ решения проблемы – удаление присутствующего в системе видеодрайвера и его повторная инсталляция. Здесь важно знать, какой именно графический адаптер у вас установлен, это можно узнать в «Панели управления». Скачивать драйвера необходимо только с официального сайта, желательно версию предпоследней свежести (последняя может содержать невыявленные баги).
Очистка ненужных файлов
Ошибка 0xc0000020 может появляться и в результате засорения ОС файлами, оставшимися после удаления ненужных программ или игр. Чтобы избавиться от них, нажмите Win+R и в появившейся консоли введите команду cleanmgr, производящую очистку диска.
.NET Framework
Ещё одной важной компонентой Windows, становящейся причиной возникновения различных проблем, включая и нашу ошибку, является пакет .NET Framework. Порядок действий здесь стандартный: удаляем все установленные компоненты, скачиваем дистрибутив с сайта Microsoft и выполняем повторную установку.
Надеемся, приведённые здесь рекомендации помогут вам избавиться от ошибок, возникающих при запуске приложений. Если нет, опишите ваш случай в комментариях, и общими усилиями вам будет оказана посильная помощь в устранении проблемы.