Как вызвать BSOD вручную — для тестирования и отладки в Windows

Как принудительно вызвать синий экран смерти (BSOD) в Windows 10 и Windows 11 через реестр, NotMyFault или PowerShell — для отладки и тестирования.
BSOD Windows

Принудительный вызов BSOD (Blue Screen of Death, синий экран смерти) в Windows — это легитимный инструмент для разработчиков и системных администраторов. Он используется для создания дампа памяти при отладке приложений, тестирования систем аварийного восстановления и сбора диагностических данных. Windows 10 и Windows 11 поддерживают несколько способов инициировать принудительный краш.

Зачем вызывать BSOD вручную

Принудительный синий экран нужен в нескольких реальных сценариях:

  • Создание дампа памяти — при отладке приложений или драйверов разработчику нужен точный срез состояния памяти в момент сбоя. WinDbg и другие отладчики работают именно с такими дампами.
  • Тестирование систем мониторинга — проверка, правильно ли настроен мониторинг серверов и отправляет ли он уведомления при падении системы.
  • Проверка настроек аварийного дампа — убедиться, что Windows корректно записывает дамп памяти в нужное место и нужного типа.
  • Тестирование UPS и источников бесперебойного питания — имитация аварийного завершения работы.

Использовать принудительный BSOD как шалость над коллегами — плохая идея: несохранённые данные будут потеряны у всех, кто работает за этим компьютером.

Способ 1: через реестр Windows (CrashOnCtrlScroll)

Встроенный метод Windows — активация горячей клавиши для принудительного краша через реестр. Работает в Windows 10 и Windows 11.

  1. Нажмите Win + R, введите regedit и нажмите Enter. Подтвердите запрос UAC.
  2. Перейдите к ключу:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\i8042prt\Parameters
  3. В правой части окна кликните правой кнопкой мыши на пустом месте → СоздатьПараметр DWORD (32 бита).
  4. Назовите параметр CrashOnCtrlScroll.
  5. Дважды кликните по созданному параметру и установите значение 1.
  6. Закройте редактор реестра и перезагрузите компьютер — без перезагрузки параметр не вступит в силу.

После перезагрузки для вызова BSOD удерживайте Ctrl (правый) и дважды нажмите Scroll Lock. Windows немедленно создаст аварийный дамп и покажет синий экран.

Для USB-клавиатуры ключ находится в другом месте реестра:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\kbdhid\Parameters

Создайте тот же параметр CrashOnCtrlScroll со значением 1 и перезагрузите компьютер.

Способ 2: утилита NotMyFault от Sysinternals

Утилита NotMyFault от Марка Руссиновича (Microsoft Sysinternals) — профессиональный инструмент для принудительного вызова BSOD с выбором типа краша. Используется разработчиками и специалистами поддержки.

  1. Скачайте NotMyFault с официальной страницы Sysinternals на сайте Microsoft (если недоступно из РФ — найдите через поиск «Sysinternals NotMyFault» или используйте VPN).
  2. Запустите notmyfault64.exe (для 64-битных систем) от имени администратора.
  3. Выберите тип краша в списке: Buffer overflow, Stack overflow, Code overwrite и другие.
  4. Нажмите кнопку Crash.

Преимущество: NotMyFault позволяет выбрать конкретный тип сбоя, что важно при отладке специфических сценариев.

Способ 3: через PowerShell (команда NotifyBugCheck)

Для автоматизированного тестирования можно вызвать BSOD через PowerShell без установки дополнительных инструментов. Этот метод использует функцию ядра Windows через .NET.

  1. Откройте PowerShell от имени администратора (Win + XТерминал Windows (Администратор)).
  2. Введите следующий код:
    $NtdllDll = [Reflection.Assembly]::LoadWithPartialName('System.Runtime.InteropServices')
    $Ntdll = Add-Type -MemberDefinition '[DllImport("ntdll.dll")] public static extern uint NtRaiseHardError(uint ErrorStatus, uint NumberOfParameters, uint UnicodeStringParameterMask, IntPtr Parameters, uint ValidResponseOptions, out uint Response);[DllImport("ntdll.dll")] public static extern int RtlAdjustPrivilege(int Privilege, bool bEnablePrivilege, bool IsThreadPrivilege, out bool PreviousValue);' -Name NtDll -PassThru
    $Response = 0; $PreviousValue = $false
    $Ntdll::RtlAdjustPrivilege(19, $true, $false, [ref]$PreviousValue) | Out-Null
    $Ntdll::NtRaiseHardError(0xC0000022, 0, 0, [IntPtr]::Zero, 6, [ref]$Response) | Out-Null
  3. Нажмите Enter — Windows немедленно сгенерирует BSOD с созданием дампа памяти.

Этот метод требует запуска строго от имени администратора. Без прав администратора команда вернёт ошибку доступа.

Как настроить запись дампа памяти при BSOD

Чтобы аварийный дамп сохранился и был полезен для анализа, настройте параметры сбоя заранее:

  1. Нажмите Win + R, введите sysdm.cpl.
  2. Перейдите на вкладку Дополнительно → раздел Запуск и восстановление → кнопка Параметры.
  3. В разделе Отказ системы:
    • Снимите галочку Выполнить автоматическую перезагрузку — это позволит прочитать код ошибки на синем экране.
    • В поле Запись отладочной информации выберите Полный дамп памяти (для разработчиков) или Малый дамп памяти (256 КБ) (для быстрой передачи в поддержку).
    • Проверьте путь к файлу дампа: по умолчанию %SystemRoot%\MEMORY.DMP.
  4. Нажмите ОК.

Как отключить принудительный вызов BSOD

Если функция больше не нужна — отключите её через реестр:

  1. Откройте regedit и перейдите к тому же ключу, где создавали параметр.
  2. Удалите параметр CrashOnCtrlScroll или установите его значение в 0.
  3. Перезагрузите компьютер.

Что делать если ничего не помогло

Если принудительный BSOD нужен для конкретной задачи и методы выше не сработали:

  • Проверьте права администратора. Все методы требуют запуска от имени администратора. В корпоративной среде доменного администратора может быть недостаточно — нужен локальный администратор.
  • Для создания дампа без BSOD — используйте утилиту ProcDump из Sysinternals: она создаёт дамп процесса без падения всей системы.
  • WinDbg для анализа дампов — скачайте WinDbg из Windows SDK для анализа созданных дампов памяти.

FAQ

Опасно ли вызывать BSOD вручную?

Нет, если данные сохранены. Windows создаст дамп памяти и перезагрузится. Вся несохранённая работа в открытых программах будет потеряна. Не вызывайте BSOD вручную на рабочем компьютере без предупреждения коллег.

Метод с реестром не работает — кнопка Scroll Lock не вызывает BSOD

Убедитесь, что перезагрузили компьютер после правки реестра. Также проверьте, для PS/2 или USB-клавиатуры нужен разный ключ реестра (i8042prt для PS/2, kbdhid для USB). Используйте правый Ctrl, а не левый.

Где найти дамп памяти после BSOD?

По умолчанию дамп сохраняется в C:\Windows\MEMORY.DMP. Малые дампы — в папке C:\Windows\Minidump\. Если файл не создался — проверьте настройки в sysdm.cpl (должно быть достаточно места на диске и правильно указан тип дампа).

Какой тип дампа памяти выбрать для анализа?

Для большинства задач подходит Автоматический дамп памяти — он занимает меньше места, чем полный, но содержит достаточно данных для анализа в WinDbg. Полный дамп нужен только при глубокой отладке драйверов.

Можно ли вызвать BSOD удалённо на сервере?

Да. Используйте NotMyFault с ключом командной строки: notmyfault64.exe /crash через PsExec из Sysinternals или через удалённый PowerShell (Enter-PSSession). Требуются права администратора на целевом сервере.

Что означают коды остановки на синем экране?

Код остановки (Stop Code) на BSOD — это числовой идентификатор ошибки ядра Windows. Например, 0x0000007E — SYSTEM_THREAD_EXCEPTION_NOT_HANDLED, 0x0000003B — SYSTEM_SERVICE_EXCEPTION. По коду можно найти конкретную причину сбоя. На сайте allerrorcodes.ru есть статьи с расшифровкой распространённых кодов BSOD.

Алексей Герзанов aka Gerzoid
Алекс Гезанов

Работаю в сервисном центре по ремонту и обслуживанию бытовой техники. За более чем 10 лет трудовой деятельности, я сталкивался с решением большого количества проблем в работе ОС Windows, периферийных устройств, бытовой техники, игровых консолей Playstation и т. д.

Добавить комментарий

  1. Алексей Перминов

    Также можно вызвать BSOD при помощи диспетчера задач.
    1. вызываем диспетчер
    2. если вы в Windows 7 то просто завершаете процесс csrss.exe
    3. если не удается завершить, то нажимаете в диспетчере «Отобразить процессы всех пользователей».
    4. находите csrss.exe, подтверждаете свои действия и наслаждайтесь!
    P.S. При завершении этого процесса, компьютер не сломается

    Ответить
  2. heriby

    А что делать если на клавиатуре ноутбука нет ScrollLock?

    Ответить