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

15

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

HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ i8042prt \ Parameters

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

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

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

Kredns
источник
3
Я думаю, вам нужно спросить Microsoft об этом.
DLH
19
Поскольку это требует обязательного взлома реестра, я не думаю, что есть недостаток в том, чтобы оставить его в системе. Никто не может вызвать это по ошибке.
Сангрету
Будет ли последовательность клавиш работать, если она запущена из сеанса RDP?
Axxmasterr
4
Поскольку у него есть законный вариант использования, который важен для людей, которые на самом деле пишут и отлаживают драйверы ядра и устройств, я не ожидал, что он будет удален. Для его включения требуется доступ на запись в HKLM, и даже если он включен, вы получаете только BSOD.
RBerteig
2
@ Axxmaster: Нет, не будет, поскольку в драйверах устройств для клавиатур реализована последовательность клавиш. Они не нужны или даже не используются в сеансе RDP.
Джои

Ответы:

34

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

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

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

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

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

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

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

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

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

DLH
источник
3

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

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

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

spoulson
источник
5
Раньше я использовал его в школе, когда приходил мой учитель, и я играл в полноценную игру.
Креднс
@ Лукас: Подождите, у вас есть доступ администратора в месте, где вы студент? : O
Джои,
@ Йоханнес: Да. Это было очень слабо.
Креднс
Спулсон, очевидно, вы не программист или, по крайней мере, не низкоуровневый отладчик.
Synetech
2

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

Vdex
источник
Это полезно для пользователей (ну, для программистов).
Synetech
2

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

kpierce8
источник