Доброго дня всем!
Эта ошибка характерна для игр (хотя иногда "страдают" и др. программы), и появляется она обычно в момент запуска. Заранее предупрежу, что этот код 0xc0000022 мало о чем говорит: причиной может быть как отсутствующий файл, так и блокировка приложения антивирусом...
В этой заметке приведу несколько советов, которые в большинстве случаев помогают избавиться от этой ошибки. Рекомендую выполнять их в порядке, приведенным мной ниже. Материал актуален для современных ОС Windows 8/10/11.
Примечание: ниже на скрине приведен пример подобной ошибки (возникла при запуске игры PES 2016).
*
Как можно исправить 0xc0000022
❶
Запуск от имени администратора
Первое, что посоветую сделать — это кликнуть правой кнопкой мышки по исполняемому файлу (ярлыку) и в появившемся контекстном меню выбрать вариант запуска от имени администратора.
Если приложение запустилось — просто зайдите в свойства ярлыка и поставьте галочку, чтобы задача всегда выполнялась от администратора.
❷
Проверка защитника
Если у вас ОС Windows 10/11 - то проверьте обязательно состояние защитника (нередко он "молча" удаляет некоторые файлы игр и программ, которые ему показались подозрительными).
Для этого откройте параметры (Win+i), перейдите во вкладку "Обновление и безопасность / Безопасность Windows", и нажмите по ссылке на центр безопасности защитника. См. скриншот ниже. 👇
Далее откройте журнал угроз и просмотрите последние события: нет ли среди списка очистки файлов игры...
Если таковые будут найдены, у вас есть два пути:
- восстановить файл из карантина защитника и попробовать запустить игру (программу). Это следует делать, если вы не сомневаетесь в безопасности файла;
- загрузить другую версию программы/игры и переустановить ее (перепроверенную на вирусы и вредоносное ПО).
❸
Обновление системных библиотек, драйверов
Ошибка 0xc0000022 также может возникнуть из-за отсутствия файлов каких-нибудь библиотек: DirectX, Visual C++, NET Framework и т.д.
Чтобы все это не перепроверять вручную, рекомендую попробовать утилиту Driver Booster: она не только может обновить драйвера, но и проверит все библиотеки, влияющие на работу игр (что очень удобно). Бесплатной версии для решения этой задача вполне достаточно...
❹
Режим совместимости и DirectPlay
Если вы пытаетесь запустить старую игру на новом компьютере (ОС Windows) — то не исключено появление разного рода ошибок. Попробуйте зайти в свойства исполняемого файла (ярлыка на рабочем столе), и включить режим совместимости приложения со старой ОС (например с Windows 7 как в моем примере ниже).
📌 В помощь!
Как запустить старую игру на новом компьютере — https://ocomp.info/kak-zapustit-staruyu-igru.html
Кроме этого, многим старым играм (например, Majesty, Thief, Dune 2000 и пр.) нужен компонент DirectPlay, который почему-то в современных ОС отключен...
Чтобы включить его: зайдите в панель управления, в раздел "Программы / Включение или отключение компонентов Windows".
Далее найдите каталог "Компоненты прежних версий" и включите DirectPlay. Windows должна автоматически загрузить и установить его. После перезагрузите компьютер и проверьте работоспособность программы/игры...
❺
Отключите на время антивирус
Не лишним будет на время диагностики и поиска причин появления ошибки - отключить антивирус. Благо, что почти все современные продукты отключаются в 1-2 клика мышкой через трей. Как это выглядит у AVAST представлено на скрине ниже...
❻
Попытка диагностики с помощью ProcessMonitor
Если все предыдущее не помогло, можно попробовать отыскать причину с помощью утилиты ProcessMonitor (ссылка на сайт Microsoft). Она инспектирует все приложения и процессы, запускаемые на ПК (причем, даже если у вас программа вылетела с ошибкой — этот факт можно найти в ProcessMonitor и посмотреть что там произошло...).
1) Перед запуском утилиты, я вам рекомендую открыть свойства ярлыка (запускаемой программы) и скопировать оригинальное название exe-файла. Пример на скрине ниже.
2) Далее нужно запустить утилиту, и сразу же открыть нужную программу/игру. Как только она вылетит с ошибкой, перейдите в ProcessMonitor и:
- включите отображение всех событий (см. стрелку-1 на скрине ниже);
- перейдите в режим фильтрации (стрелка-2);
- переключите фильтрацию в режим Process Name (т.е. чтобы можно было указать тот процесс, который нам нужен - т.к. их в утилите будет очень много);
- вставьте оригинальное название файла игры;
- нажмите OK.
Далее рекомендую еще раз открыть фильтрацию и исключить все успешные (SUCCESS) строки. Пример ниже.
В результате у вас останутся только проблемные строки (в каждом конкретном случае их количество может сильно разница). В моем, например, исходя из первых строк стало понятно, что есть какая-то проблема с файлом "steam_api.dll" в папке с игрой. В последствии оказалось, кстати, что его удалил защитник Windows (после восстановления - игра заработала!).
Кстати, также достаточно часто встречается случай отсутствия прав на доступ к определенным DLL файлам. Например, если ProcessMonitor покажет вам ошибку ACCESS DENIED (скажем, к C:\Windows\Syswow64\MSVBVM50.DLL) - то нужно вручную разрешить чтение данного файла для текущего пользователя.
Делается это просто: сначала находите нужный файл (адрес также показывается в ProcessMonitor, см. скрин выше). Далее открываете его свойства, переходите во вкладку "Безопасность" и жмете "Изменить".
После добавляете нового пользователя (см. скриншот ниже).
Две галочки для возможности чтения файла, обычно, стоят по умолчанию - поэтому останется только сохранить настройки.
*
PS
Если из вышеперечисленного ничего не помогло - можно посоветовать загрузить другую версию игры/приложения. Возможно, что текущая просто несовместима с вашей версией ОС, ПО (а возможно, что она просто была повреждена, например, вирусами...).
*
Если у вас получилось избавиться от этой ошибки как-то по-другому — сообщите в 2-х словах в комментариях.
Удачи!
👀
Первая публикация: 04.07.2019
Корректировка: 20.02.2023
Другие записи: