Состояние ошибки 0xc000012f или 0xc0000020 в Windows 11 — как исправить?

Как исправить ошибку 0xc000012f или 0xc0000020 в WindowsПри запуске отдельных игр и программ в Windows 11 пользователи могут столкнуться с сообщением об ошибке с заголовком «Bad Image», указанием на DLL, сообщением о том, что программа не предназначена для выполнения в Windows или содержит ошибку и кодом 0xc000012f или 0xc0000020.

В этой инструкции подробно о том, чем может быть вызвана такая ошибка и вариантах решения проблемы, если вы с ней столкнулись.

Причина ошибки и варианты решения

Сообщения об ошибках Bad Image 0xc000012f и 0xc0000020

Ошибки «Bad Image» с кодами 0xc000012f или 0xc0000020 и ссылающиеся на какую-либо библиотеку DLL возникают в случае, если указанный файл DLL присутствует, но повреждён, не предназначен для запуска в текущей Windows (например, является ARM64 версией библиотеки) или вовсе не является файлом DLL, а лишь имеет такое имя. Почему это может произойти:

  • Программа жаловалась на отсутствие какой-либо библиотеки DLL, вы скачали её отдельно из Интернета, но по факту загрузили не то или вовсе не DLL, а просто файл с нужным названием.
  • Библиотека DLL была повреждена вами, из-за ошибок диска, была повреждённой уже в дистрибутиве программы, либо испорчена при распаковке во время установки.
  • Файл DLL был заблокирован антивирусом или помещён в карантин, при этом оставаясь в том же расположении (проверьте журналы вашего антивируса, для Microsoft Defender инструкция доступна здесь).

Теперь по порядку рассмотрим варианты решения проблемы, один из которых с большой вероятностью сработает.

  1. Если путь к DLL указывает на папку C:\Windows\System32, попробуйте выполнить простое восстановление системных файлов Windows. Запустите командную строку от имени администратора и по порядку выполните команды:
    dism /online /cleanup-image /restorehealth
    sfc /scannow
  2. Если вы вручную «подкидывали» какие-либо DLL в виде отдельных файлов для работы программы или игры, поскольку столкнулись с ошибкой «система не обнаружила DLL», удалите скачанные вами вручную библиотеки, разберитесь, частью каких компонентов является проблемная DLL и установите эти компоненты. Например, для файлов ucrtbase.dll, а также тех, названия которых начинаются с msvcr или msvcp решением будет установка распространяемых компонентов Microsoft Visual C++ (причем для x64-версий систем нужно установить и x64 и x86 версии компонентов) или их исправление путем нажатия кнопки «Изменить» в «Программы и компоненты» (Win+Rappwiz.cpl) с последующим выбором «Исправить»: Исправление установки Visual C++ Redistributable
  3. В случае, если ранее эта же программа или игра работала исправно, а теперь перестала (при этом её переустановка или какие-либо манипуляции не производились), могут помочь точки восстановления системы.
  4. При нахождении DLL, вызывающей ошибку в папке DriverStore, причина, по всей видимости, в каком-либо драйвере. Используйте имя DLL для поиска в Интернете и выяснения, к какому драйверу она относится. Переустановите соответствующий драйвер. Возможно, на более новую или более старую версию.
  5. Для «не совсем лицензионных» игр и программ внимательно изучите журналы Microsoft Defender или стороннего антивируса, возможно, потребуется добавить папку с установленной игрой или программой в исключения антивируса (как это сделать в Microsoft Defender).
  6. Попробуйте переустановить игру или программу, в идеале — из другого источника, лучше всего — официального.
  7. Если вы наблюдаете какие-либо проблемы с работой жесткого диска, SSD или другого накопителя, при запуске с которого сталкиваетесь с ошибкой, стоит проверить его состояние с помощью CrystalDiskInfo, выполнить проверку файловой системы с помощью команды (пример для диска C):
    chkdsk C: /f

Также может помочь анализ зависимостей исполняемого файла с помощью Dependencies GUI. Скачайте и запустите программу, откройте (можно просто перетащить на окно) EXE файл игры или программы, при запуске которого возникает ошибка и посмотрите, для каких библиотек DLL сообщается об ошибках:

Анализ зависимостей в Dependencies GUI

Особое внимание обратите на столбец Machine — соответствует значение в нём архитектуре библиотек без ошибок и самой программы, либо вовсе указано N/A (это говорит о том, что указанный файл с расширением DLL не является исполняемой библиотекой Windows).

Если все описанные шаги не помогли, опишите подробно в комментариях, при запуске какого ПО и в какой версии операционной системы появляется ошибка 0xc000012f или 0xc0000020, на какую DLL ссылается, что уже делалось и к чему привело. Я постараюсь помочь.

Оставить комментарий

Интересное
Новое
Список инструкций Windows 11 Windows 10 Подписаться