В некоторых инструкциях, имеющих отношение к решению проблем с работой программ, драйверов или игр вы можете встретить предложение отключить DEP как один из способов исправить ошибки.
В этой инструкции подробно о том, что такое DEP (предотвращение выполнения данных) и способах отключения функции в Windows 11, 10 и предыдущих версиях системы.
Что такое Data Execution Prevention (DEP)
Назначение функции DEP — предотвращение выполнения кода из областей памяти, помеченных как «Только данные» и не предназначенных для исполнения. Задача — блокировка некоторых уязвимостей, которые позволяют вредоносным программам поместить код в область памяти только для чтения, а затем заставить процессор выполнить его.
В случае, если функция Data Execution Prevention (DEP) включена, она блокирует такие попытки и принудительно закрывает соответствующий процесс. В самой программе это часто выглядит как сбой с кодом 0xC0000005, означающим нарушение прав доступа.
В современных системах работа DEP опирается на аппаратную поддержку NX (No Execute, для процессоров AMD) или XD (Execute Disabled, для процессоров Intel) — обе функции предотвращают выполнение кода из областей памяти, которые помечены как неисполняемые, блокирую один из векторов атаки вредоносного ПО.
Узнать текущий статус DEP в Windows 11/10 и других версий ОС можно различными способами. Один из них — выполнение следующей команды в командной строке от имени Администратора (не в PowerShell):
wmic OS Get DataExecutionPrevention_Available, DataExecutionPrevention_SupportPolicy
Вы увидите два столбца. Первый — поддержка DEP, второй — текущий статус в виде числа, соответствующего следующим состояниям:
- 0 — полностью отключено
- 1 — включено для всех процессов
- 2 — включено только для компонентов Windows. Внимание: при этом сами сторонние программы могут запросить DEP и тогда он будет включен и для них.
- 3 — включено для всех процессов, кроме списка исключений
Также вы можете посмотреть статус DEP для конкретных процессов в диспетчере задач, включив отображение соответствующего столбца «Предотвращение выполнения данных»:

Способы отключить DEP и для чего это может потребоваться
Прежде всего отмечу: без необходимости отключить DEP не следует, это не приведёт к повышению производительности или какой-либо дополнительной пользе.
Однако, в некоторых случаях отдельные программы или игры, особенно старые, могут неправильно работать с DEP. В этом случае можно попробовать исключить конкретный исполняемый файл программы в исключения DEP.
Сделать это можно несколькими способами. Первый вариант:
- Нажмите клавиши Win+R на клавиатуре, либо нажмите правой кнопкой мыши по кнопке «Пуск» и выберите пункт «Выполнить». Введите sysdm.cpl и нажмите Enter.
- Перейдите на вкладку «Дополнительно», а затем нажмите кнопку «Параметры» в разделе «Быстродействие».

- Перейдите на вкладку «Предотвращение выполнения данных» и либо выберите опцию «Включить DEP только для основных программ и служб Windows» (но учитывайте, что при этом DEP может включаться и для сторонних программ автоматически), либо, при желании — «Включить DEP для всех программ и службы, кроме выбранных ниже», после чего используйте кнопку «Добавить» для добавления тех программ, DEP для которых следует отключить.

- Примените настройки и перезагрузите компьютер.
Переопределить состояние DEP можно в окне «Безопасность Windows»:
- Откройте «Безопасность Windows», перейдите к разделу «Управление приложениями и браузером», нажмите по ссылке «Параметры защиты от эксплойтов».
- Там вы сможете выбрать одну из опций для предотвращения выполнения данных: «Вкл. по умолчанию» или «Выкл. По умолчанию».

Третий способ — редактор реестра:
- Нажмите клавиши Win+R на клавиатуре, введите regedit и нажмите Enter.
- Перейдите к разделу реестра (если он отсутствует — создайте его)
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers
- Внутри этого раздела создайте новый строковый параметр и укажите путь к исполняемому файлу программы в качестве имени этого параметра.
- Дважды нажмите по созданному параметру и измените его значение на DisableNXShowUI

- Закройте редактор реестра и перезагрузите компьютер.
И, наконец, ещё одна возможность — полное отключение DEP в Windows (не рекомендуется, поскольку действие потенциально небезопасно). Запустите командную строку от имени администратора и выполните команду:
bcdedit.exe /set {current} nx AlwaysOff

После чего перезагрузите компьютер. Учитывайте, что после этого изменение состояния DEP другими способами станет недоступным:

Чтобы вернуть состояние по умолчанию, используйте команду:
bcdedit.exe /set {current} nx OptIn
с последующей перезагрузкой компьютера.
Надеюсь, информация была полезной. Однако, напомню: без явной необходимости изменять параметры Data Execution Prevention не следует.
