Принудительное завершение работы системы с клавиатуры
Следующие типы клавиатур могут напрямую вызвать сбой системы:
Клавиатуры PS/2, подключенные к портам i8042prt Эта функция доступна в Windows 2000 и более поздних версиях операционной системы Windows.
USB-клавиатуры
Эта функция доступна в Windows Vista и более поздних версиях операционной системы Windows.Клавиатуры Hyper-V
Эта функция доступна в Windows 10 версии 1903 и более поздних версиях операционной системы Windows.
Конфигурация
Настройте следующие параметры, чтобы включить сбой системы с помощью клавиатуры:
Если требуется записать файл аварийного дампа, необходимо включить такие файлы дампа. Выберите путь и имя файла, а также размер файла дампа. Дополнительные сведения см. в разделе Включение файла дампа в режиме ядра.
При использовании клавиатур PS/2 необходимо включить инициированный клавиатурой сбой в реестре. В разделе
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\i8042prt\Parameters
реестра создайте значение с именемCrashOnCtrlScroll
и присвойтеREG_DWORD
ему значение 0x01.При использовании USB-клавиатур необходимо включить в реестре сбой, инициированный клавиатурой. В разделе
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\kbdhid\Parameters
реестра создайте значение с именемCrashOnCtrlScroll
и присвойтеREG_DWORD
ему значение 0x01.С помощью клавиатур Hyper-V необходимо включить в реестре сбой, инициированный клавиатурой. В разделе
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\hyperkbd\Parameters
реестра создайте значение с именемCrashOnCtrlScroll
и присвойтеREG_DWORD
ему значение 0x01.
Некоторые ноутбуки используют драйвер PS/2 для встроенной клавиатуры, а также поддерживают внешние клавиатуры HID. Для этих систем рекомендуется создать разделы реестра USB и PS/2, чтобы разрешить использование любой клавиатуры.
Чтобы эти параметры вступили в силу, необходимо перезапустить систему.
После завершения перезагрузки можно инициировать сбой клавиатуры с помощью следующей последовательности клавиш: удерживайте нажатой правую клавишу CTRL и дважды нажмите клавишу SCROLL LOCK.
Затем система вызывает KeBugCheck
и выдает проверка 0xE2 ошибок: MANUALLY_INITIATED_CRASH. Если аварийные дампы не были отключены, записывается файл аварийного дампа.
Если отладчик ядра подключен к аварийному компьютеру, компьютер войдет в отладчик ядра после записи файла аварийного дампа.
Определение альтернативных сочетаний клавиш для принудительного сбоя системы с клавиатуры
Вы можете настроить альтернативные значения в следующих подразделах реестра для последовательностей сочетаний клавиш, чтобы создать файл дампа памяти:
Для клавиатур PS/2:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\i8042prt\crashdump
Для USB-клавиатур:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\kbdhid\crashdump
Для клавиатур Hyper-V:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\hyperkbd\crashdump
В этих подразделах необходимо создать следующие значения реестра REG_DWORD
:
Dump1Keys
Значение Dump1Keys
реестра представляет собой битовую карту первого используемого горячего ключа. Например, вместо использования крайней правой клавиши CTRL для инициации последовательности горячих клавиш можно задать для первой горячей клавиши значение самой левой клавиши SHIFT.
Значения для первой горячей клавиши описаны в следующей таблице.
Значение | Первая клавиша, используемая в последовательности сочетаний клавиш |
---|---|
0x01 | Правая клавиша SHIFT |
0x02 | Самая правая клавиша CTRL |
0x04 | Правая клавиша ALT |
0x10 | Левая клавиша SHIFT |
0x20 | Левая клавиша CTRL |
0x40 | Левая клавиша ALT |
Можно назначить Dump1Keys
значение, которое включает одну или несколько клавиш в качестве первой клавиши, используемой в последовательности сочетаний клавиш. Например, присвойте Dump1Keys
значение 0x11 для определения крайней правой и крайней левой клавиши SHIFT в качестве первой клавиши в последовательности сочетаний клавиш.
Dump2Key
Значение Dump2Key
реестра — это индекс в таблице кода сканирования для раскладки клавиатуры целевого компьютера. См. фактическую таблицу в драйвере:
const UCHAR keyToScanTbl[134] = {
0x00,0x29,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,
0x0A,0x0B,0x0C,0x0D,0x7D,0x0E,0x0F,0x10,0x11,0x12,
0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x00,
0x3A,0x1E,0x1F,0x20,0x21,0x22,0x23,0x24,0x25,0x26,
0x27,0x28,0x2B,0x1C,0x2A,0x00,0x2C,0x2D,0x2E,0x2F,
0x30,0x31,0x32,0x33,0x34,0x35,0x73,0x36,0x1D,0x00,
0x38,0x39,0xB8,0x00,0x9D,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0xD2,0xD3,0x00,0x00,0xCB,
0xC7,0xCF,0x00,0xC8,0xD0,0xC9,0xD1,0x00,0x00,0xCD,
0x45,0x47,0x4B,0x4F,0x00,0xB5,0x48,0x4C,0x50,0x52,
0x37,0x49,0x4D,0x51,0x53,0x4A,0x4E,0x00,0x9C,0x00,
0x01,0x00,0x3B,0x3C,0x3D,0x3E,0x3F,0x40,0x41,0x42,
0x43,0x44,0x57,0x58,0x00,0x46,0x00,0x00,0x00,0x00,
0x00,0x7B,0x79,0x70 };
Индекс 124 (sysreq) — это особый случай, так как клавиатура с 84 клавишами имеет другой код сканирования.
Если вы определяете альтернативные сочетания клавиш для принудительного сбоя системы с КЛАВИАТУРы USB или PS/2, необходимо задать CrashOnCtrlScroll
для реестра значение 0 или удалить его из реестра.
Пример. В этом сценарии ноутбук использует драйвер клавиатуры PS2 и подключена внешняя клавиатура HID. Установка обоих значений позволяет активировать сбой системы вручную с любой клавиатуры. Сбой системы вручную может быть вызван удерживая нажатой правой клавишей управления и дважды нажав пробел, если задан следующий раздел реестра.
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\i8042prt\crashdump]
"Dump1Keys"=dword:00000002
"Dump2Key"=dword:0000003d
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\kbdhid\crashdump]
"Dump1Keys"=dword:00000002
"Dump2Key"=dword:0000003d
Ограничения
Возможно, но в редких случаях система зависает таким образом, что последовательность сочетаний клавиш не работает. Использование последовательности сочетаний клавиш для запуска сбоя будет работать даже во многих случаях, когда клавиши CTRL+ALT+DELETE не работают.
Принудительное завершение работы системы с клавиатуры не работает, если компьютер перестает отвечать на высоком уровне запроса прерывания (IRQL). Это ограничение связано с тем, что драйвер Kbdhid.sys , который позволяет выполнять процесс дампа памяти, работает на более низком уровне IRQL, чем драйвер i8042prt.sys .
См. также раздел
Проверка 0xE2 ошибок: MANUALLY_INITIATED_CRASH
Анализ файла дампа Kernel-Mode с помощью WinDbg
0x161 проверки ошибок: LIVE_SYSTEM_DUMP
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по