15

Когда вышла Windows XP, я услышал о функции тестирования, которая существовала, чтобы вручную вызывать BSOD (Blue Screen Of Death). Я также слышал, что это должно быть удалено в XP Service Pack 2. Это не было удалено, это также в Vista и Windows 7. Чтобы включить это, перейдите в это место в реестре:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\i8042prt\Parameters

и добавьте CrashOnCtrlScroll в качестве REG_DWORD со значением 1.

Теперь перезагрузите компьютер и нажмите Ctrl+Scroll Lock+Scroll Lock, и вы получите BSOD.

Почему эта функция все еще здесь?

7 ответов7

33

Это там, чтобы позволить взломать отладчик ядра или создать файл дампа в режиме ядра. Как правило, эксперт захочет сделать это, когда ОС выглядит заблокированной и даже не отвечает на CTRL+ALT+DELETE, чтобы получить файл дампа и исследовать его, для которого возникли проблемы с драйвером.

Логически эквивалентно вызову API ядра KeBugCheck с ошибкой проверки 0xE2 (MANUALLY_INITIATED_CRASH). Также обратите внимание, что значения reg могут быть установлены в разных ключах reg для драйвера клавиатуры USB (kbdhid) по сравнению с драйвером ps2 (i8042prt). Больше информации об этом и настройке того, какое нажатие клавиши используется в статье 244139 КБ.

Поскольку это реализовано в реальных драйверах клавиатуры, я не ожидаю, что это сработает в сеансе RDP, даже если он был включен.

6

Если мы щедры, возможно, это может быть использовано как чрезмерный энтузиазм для принудительного создания аварийного дампа для ручного исследования состояния системы? (в первую очередь для отладки)

ОК - довольно странный способ сделать это, но ...

5

Давайте назовем это пасхальным яйцом.

Поздравляю ..... ты нашел это!

3

Похоже, что-то, что не стоило времени и усилий, чтобы удалить из кодовой базы.

3

Это звучит как забавная практическая шутка, правда.

2

Вы должны посмотреть видео Марка Руссиновича, где он показывает, как диагностировать зависания системы с помощью этой "функции". Я думаю, что это было просто отключено в SP2, а не удалено.

2

Я предполагаю, что Microsoft выполняет модульное тестирование своих ОС перед выпуском обновлений и т.д. Предположительно, одним из тестов было бы проверить, продолжает ли BSOD вести себя так, как должен. Также имеет смысл запускать модульные тесты на реальной активной версии кода для более надежного тестирования.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .