Как принудительно вызвать BSOD в Windows.

Принудительное аварийное завершение работы ОС используется для получения дампов памяти, являющихся основным источником для поиска причин возникновения проблем с оборудованием и компонентами системного программного обеспечения. В естественных условиях при возникновении критической ошибки системы, когда продолжение ее работы невозможно, выполняется аварийное завершение Windows с отображением на экране специального сообщения с кратким описанием ошибки, его кодом, именем программного модуля, возможно являющимся источником сбоя и техническими параметрами, которые детализируют данный тип ошибки. Традиционно, начиная с первых версий Windows, сообщения о критических ошибках отображались на экране синего цвета, откуда и появилось выражение ”синий экран смерти” или Blue Screen Of Death (BSOD). В настоящее время чаще используется термин ”стоп-ошибка” (Stop Error) с указанием кода ошибки – Stop 0xE2 или Stop E2.

Настройка параметров записи дампа памяти.



    В зависимости от версии Windows настройки записи дампа памяти при крахе системы могут отличаться. В любой момент времени их можно изменить. Так, например, для Windows 10 можно перейти в Параметры – Система – О программе – Дополнительные параметры системы - вкладка Дополнительно - раздел Загрузка и восстановление - кнопка Параметры. В разделе Запись отладочной информации нужно выбрать разновидность дампа памяти:

Выбор разновидности дампа памяти в Windows 10


Имеется возможность отключить запись дампа памяти или выбрать вариант с минимальным или максимальным его объемом, получением только дампа ядра или дампа без учета памяти, используемой виртуальными машинами. Также можно настроить запись события краха Windows в системный журнал и возможность перезагрузки ОС после записи дампа.

Принудительное аварийное завершение системы.



    Для принудительного выполнения BSOD используется вызов специальной функции KeBugCheck, которая обеспечивает аварийное завершение Windows с кодом ошибки 0xE2 (MANUALLY_INITIATED_CRASH). Если аварийный дамп памяти не был отключен настройками системы, то на этом этапе записывается файл аварийного дампа.

На практике для выполнения принудительного аварийного завершения Windows используется 2 приема:

- С помощью отладчика KD или WinDbg, работающего в режиме ядра, и ввода специальной команды .crash (принудительное завершение работы системы) в командной строке.

- С помощью драйвера клавиатуры и специального сочетания клавиш.

Первый способ требует наличия на компьютере соответствующего отладчика, который устанавливается с набором инструментов разработчика System Development Kit (SDK) или других пакетов средств отладки Debugging Tools For Windows. Для скачивания требуется наличие учетной записи Microsoft. Процесс установки и использования отладчиков описан в документации конкретных пакетов, как правило – на английском языке.

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

Для разрешения драйверу клавиатуры выполнять вызов функции аварийного завершения системы необходимо к его параметрам в реестре добавить новый параметр типа DWORD с именем CrashOnCtrlScroll и значением 0x1. Драйвер клавиатуры, использующийся в конкретной системе, зависит от ее аппаратной платформы. Наиболее распространенные варианты драйверов:

i8042 - драйвер на базе микроконтроллера Intel 8042, как правило, использующийся с клавиатурой c разъемом PS/2 .

kbdhid - драйвер клавиатуры класса устройств USB для взаимодействия с человеком (Human Interface Device, HID).

hyperkbd - драйвер клавиатуры виртуальной машины Hyper-V

В случаях, когда требуется принудительное аварийное завершение виртуальных машин Oracle VM VirtualBox или Vmware, определить какой драйвер обслуживает клавиатуру в конкретной системе можно с помощью диспетчера устройств. В данном примере представлена информация диспетчера устройств виртуальной машины с Windows 10, работающей в среде физического компьютера с клавиатурой USB.

Определение драйвера клавиатуры с помощью диспетчера устройств.


Как видно, в виртуальной машине используется драйвер клавиатуры i8042, что определяется параметрами данной виртуальной машины. Соответственно в раздел реестра Parameters драйвера i8042 нужно добавить ключ CrashOnCtrlScroll типа DWORD, равный единице:

Настройка параметра для выполнения BSOD E2 с помощью клавиатуры PS/2.


После перезагрузки по нажатию дважды Scroll Lock при удерживаемом правом CTRL выполнится аварийное завершение Windows 10 с ”синим экраном смерти” Stop E2:

Аварийное завершение Windows 10 с кодом E2.


Строка 80 % завершено - это процент записи дампа памяти в файл. Размер файла с дампом и время его записи зависят от объема оперативной памяти, степени ее использования системными и пользовательскими процессами, а также выбранного варианта записи дампа в настройках системы.

Для отключения возможности принудительного аварийного завершения Windows достаточно удалить параметр CrashOnCtrlScroll или присвоить ему значение 0.




В начало страницы     |     В раздел коротких инструкций (HowTo)



Рейтинг@Mail.ru