Принудительный вызов BSOD (Blue Screen of Death, синий экран смерти) в Windows — это легитимный инструмент для разработчиков и системных администраторов. Он используется для создания дампа памяти при отладке приложений, тестирования систем аварийного восстановления и сбора диагностических данных. Windows 10 и Windows 11 поддерживают несколько способов инициировать принудительный краш.
Зачем вызывать BSOD вручную
Принудительный синий экран нужен в нескольких реальных сценариях:
- Создание дампа памяти — при отладке приложений или драйверов разработчику нужен точный срез состояния памяти в момент сбоя. WinDbg и другие отладчики работают именно с такими дампами.
- Тестирование систем мониторинга — проверка, правильно ли настроен мониторинг серверов и отправляет ли он уведомления при падении системы.
- Проверка настроек аварийного дампа — убедиться, что Windows корректно записывает дамп памяти в нужное место и нужного типа.
- Тестирование UPS и источников бесперебойного питания — имитация аварийного завершения работы.
Использовать принудительный BSOD как шалость над коллегами — плохая идея: несохранённые данные будут потеряны у всех, кто работает за этим компьютером.
Способ 1: через реестр Windows (CrashOnCtrlScroll)
Встроенный метод Windows — активация горячей клавиши для принудительного краша через реестр. Работает в Windows 10 и Windows 11.
- Нажмите Win + R, введите
regeditи нажмите Enter. Подтвердите запрос UAC. - Перейдите к ключу:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\i8042prt\Parameters
- В правой части окна кликните правой кнопкой мыши на пустом месте → Создать → Параметр DWORD (32 бита).
- Назовите параметр CrashOnCtrlScroll.
- Дважды кликните по созданному параметру и установите значение 1.
- Закройте редактор реестра и перезагрузите компьютер — без перезагрузки параметр не вступит в силу.
После перезагрузки для вызова BSOD удерживайте Ctrl (правый) и дважды нажмите Scroll Lock. Windows немедленно создаст аварийный дамп и покажет синий экран.
Для USB-клавиатуры ключ находится в другом месте реестра:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\kbdhid\Parameters
Создайте тот же параметр CrashOnCtrlScroll со значением 1 и перезагрузите компьютер.
Способ 2: утилита NotMyFault от Sysinternals
Утилита NotMyFault от Марка Руссиновича (Microsoft Sysinternals) — профессиональный инструмент для принудительного вызова BSOD с выбором типа краша. Используется разработчиками и специалистами поддержки.
- Скачайте NotMyFault с официальной страницы Sysinternals на сайте Microsoft (если недоступно из РФ — найдите через поиск «Sysinternals NotMyFault» или используйте VPN).
- Запустите notmyfault64.exe (для 64-битных систем) от имени администратора.
- Выберите тип краша в списке: Buffer overflow, Stack overflow, Code overwrite и другие.
- Нажмите кнопку Crash.
Преимущество: NotMyFault позволяет выбрать конкретный тип сбоя, что важно при отладке специфических сценариев.
Способ 3: через PowerShell (команда NotifyBugCheck)
Для автоматизированного тестирования можно вызвать BSOD через PowerShell без установки дополнительных инструментов. Этот метод использует функцию ядра Windows через .NET.
- Откройте PowerShell от имени администратора (Win + X → Терминал Windows (Администратор)).
- Введите следующий код:
$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 - Нажмите Enter — Windows немедленно сгенерирует BSOD с созданием дампа памяти.
Этот метод требует запуска строго от имени администратора. Без прав администратора команда вернёт ошибку доступа.
Как настроить запись дампа памяти при BSOD
Чтобы аварийный дамп сохранился и был полезен для анализа, настройте параметры сбоя заранее:
- Нажмите Win + R, введите
sysdm.cpl. - Перейдите на вкладку Дополнительно → раздел Запуск и восстановление → кнопка Параметры.
- В разделе Отказ системы:
- Снимите галочку Выполнить автоматическую перезагрузку — это позволит прочитать код ошибки на синем экране.
- В поле Запись отладочной информации выберите Полный дамп памяти (для разработчиков) или Малый дамп памяти (256 КБ) (для быстрой передачи в поддержку).
- Проверьте путь к файлу дампа: по умолчанию %SystemRoot%\MEMORY.DMP.
- Нажмите ОК.
Как отключить принудительный вызов BSOD
Если функция больше не нужна — отключите её через реестр:
- Откройте regedit и перейдите к тому же ключу, где создавали параметр.
- Удалите параметр CrashOnCtrlScroll или установите его значение в 0.
- Перезагрузите компьютер.
Что делать если ничего не помогло
Если принудительный 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.
Также можно вызвать BSOD при помощи диспетчера задач.
1. вызываем диспетчер
2. если вы в Windows 7 то просто завершаете процесс csrss.exe
3. если не удается завершить, то нажимаете в диспетчере «Отобразить процессы всех пользователей».
4. находите csrss.exe, подтверждаете свои действия и наслаждайтесь!
P.S. При завершении этого процесса, компьютер не сломается
А что делать если на клавиатуре ноутбука нет ScrollLock?