Заметки о Windows и других программных продуктах Microsoft...

Принудительный вызов BSOD в Windows

Принудительный вызов BSOD в Windows

Когда в операционной системе Windows происходит неустранимая ошибка, которую система не в состоянии обработать, работа компьютера аварийно завершается, создается дамп памяти, а на экран выдается информация о причине ошибке. Информация выводится на синем фоне, поэтому этот экран называют синим экраном смерти (Blue Screen of Dead, BSOD).

Как правило, BSOD возникает неожиданно и его появление говорит о наличии серьезных проблем. Однако есть способы вызвать BSOD принудительно, по нажатию определенной комбинации клавиш. Эта возможность заложена в Windows не ради прикола, а для того, чтобы создавать дамп памяти по мере необходимости.

Для того, чтобы активировать возможность вызова BSOD, надо открыть редактор реестра, перейти в раздел HKLM\SYSTEM\CurrentControlSet\Services\kbdhid\Parameters (для USB клавиатуры) или в HKLM\SYSTEM\CurrentControlSet\Services\i8042prt\Parameters (для PS\2 клавиатуры) и создать параметр типа DWORD с именем CrashOnCtrlScroll и значением 1.

вызов BSOD с помощью Ctrl+ScrollLock

 

После редактирования реестра необходимо перезагрузить компьютер, чтобы изменения вступили в силу. Ну а затем достаточно удерживая клавишу Ctrl дважды нажать Scroll Lock и система выпадет в синий экран, такой

BSOD Windows 7\Server 2008

 

или такой, в зависимости от версии операционной системы.

BSOD Windows 8\Server 2012

 

Примечание. Для того, чтобы отключить автоматическую перезагрузку, надо зайти в раздел HKLM\SYSTEM\CurrentControlSet\Control\CrashControl и установить параметру AutoReboot значение 0.

Если по какой либо причине Ctrl+ScrollLock вас не устраивает, то есть возможность указать альтернативное сочетание клавиш. Для этого в разделе kbdhid (или i8042prt) необходимо создать подраздел Crashdump, в который добавить два параметра типа DWORD.

В первом параметре с именем Dump1Keys хранится клавиша (или сочетание клавиш), которая удерживается первой. В качестве значения можно указать:

0x01 — right SHIFT
0x02 — right CTRL
0x04 — right ALT
0x10 — left SHIFT
0x20 — left CTRL
0x40 — left ALT

Для сочетания клавиш указывается сумма их значений, например Right SHIFT (0x01) + Left SHIFT (0x10) = 0x11

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

Примечание. Коды клавиатуры могут отличаться в зависимости от типа клавиатуры, текущей раскладки и т.п.

скан-коды клавиатуры

Для примера зададим сочетание клавиш Left CTRL (0x20) + D (0x21). Чтобы настройки применились, перезагружаем компьютер. После перезагрузки дважды жмем CTRL+D и получаем синий экран.

альтернативное сочетание клавиш для вызова BSOD

 

Примечание. Напомню, что значение можно вводить как шестнадцатеричном (Hexadecimal) так и в десятичном (Decimal) формате, но по умолчанию всегда стоит шестнадцатеричный. Тут главное не перепутать, например буква d имеет код 33 в десятичном и 21 в шестнадцатеричном формате. Также при использовании альтернативных клавиш необходимо, чтобы параметр CrashOnCtrlScroll отсутствовал либо имел значение 0.

И еще один немаловажный момент. Вышеописанные варианты не будут работать на виртуальных машинах Hyper-V, поскольку обычные сочетания клавиш обрабатываются на хосте и не передаются в ВМ. Для того, чтобы отправить виртуальную машину Hyper-V в синий экран, необходимо в разделе HKLM\SYSTEM\CurrentControlSet\Services\hyperkbd создать раздел Crashdump, в который и добавить параметры Dump1Keys и Dump2Key. Значения параметров выбираются так же, как и в предыдущем примере.

вызов BSOD в виртуальной машине Hyper-V

 

После внесения изменений необхордимо перезагрузить ВМ. Затем надо зайти на хост, на котором находится данная машина, подключиться к ней и нажать нужное сочетание клавиш. Подключаться надо с помощью консоли Hyper-V manager, при подключении по RDP данный способ не сработает и синего экрана не получится.

 
 
Комментарии

Пока нет комментариев.