Почему в Windows все еще есть функция BSOD для Ctrl + Scroll + Scroll?

5405
Kredns

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

HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ i8042prt \ Параметры

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

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

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

15
Я думаю, вам нужно спросить Microsoft об этом. DLH 14 лет назад 3
Поскольку это требует обязательного взлома реестра, я не думаю, что есть недостаток в том, чтобы оставить его в системе. Никто не может вызвать это по ошибке. sangretu 14 лет назад 19
Будет ли последовательность клавиш работать, если она запущена из сеанса RDP? Axxmasterr 14 лет назад 0
@Axxmasterr: Я уверен, что так и будет, но я сам не проверял. Kredns 14 лет назад 0
Это, вероятно, как Apple, сделал это: http://gizmodo.com/assets/resources/2007/10/171953dc7.jpeg Harley Watson 14 лет назад 0
Это одна вещь, которую я ненавижу в Apple ... не только они используют скриншот BSOD для (в настоящее время) довольно стабильной ОС, они даже используют устаревшую (вероятно, из 98 или ME). (Мой друг, который на 100% является пользователем Linux, любит Windows 7. Это что-то говорит.) grawity 14 лет назад 0
Поскольку у него есть законный вариант использования, который важен для людей, которые на самом деле пишут и отлаживают драйверы ядра и устройств, я бы не ожидал, что он будет удален. Для его включения требуется доступ на запись в HKLM, и даже если он включен, вы получаете только BSOD. RBerteig 14 лет назад 4
@ Axxmaster: Нет, не будет, поскольку в драйверах устройств для клавиатур реализована последовательность клавиш. Они не нужны или даже не используются в сеансе RDP. Joey 13 лет назад 2
Я попробовал это на Windows XP SP3 с USB-клавиатурой (я добавил значение `CrashOnCtrlScroll` в ключ` HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ kbdhid \ Parameters`), и это не сработало. Piotr Dobrogost 12 лет назад 0
Это не работало для клавиатур USB до Windows 7. Jamie Hanrahan 8 лет назад 0

7 ответов на вопрос

33
Ari Pernick

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

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

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

Он также предназначен для разработчиков аппаратного обеспечения и драйверов, которым необходимо в определенный момент попасть в отладчик. И я определенно думаю, что это должен быть принятый ответ. Joey 13 лет назад 1
6
Marc Gravell

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

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

Это действительно очень щедро. Это может быть метод, предназначенный для того, чтобы программное обеспечение могло вызвать сбой системы, чтобы «остановить кровотечение» в случае серьезного компромисса. Принудительное завершение работы системы предотвратит кражу данных. Axxmasterr 14 лет назад 7
5
DLH

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

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

3
Jeffrey

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

Нет, это было сохранено, потому что это неоценимая диагностическая функция. Synetech 8 лет назад 0
3
spoulson

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

Я использовал его в школе, когда приходил мой учитель, и я играл в полнометражную игру. Kredns 14 лет назад 5
@ Лукас: Подождите, у вас есть доступ администратора в месте, где вы студент? : O Joey 13 лет назад 0
@ Йоханнес: Да. Это было очень слабо. Kredns 13 лет назад 0
Спулсон, очевидно, вы не программист или, по крайней мере, не низкоуровневый отладчик. Synetech 8 лет назад 0
2
Vdex

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

Это полезно пользователям (ну, программистам). Synetech 8 лет назад 0
2
kpierce8

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

Похожие вопросы