Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Следующие типы клавиатур могут привести к сбою системы напрямую:
Клавиатуры 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\i8042prt\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
!analyze -v
Анализ файла дампа режима ядра с помощью WinDbg
Проверка ошибок 0x161: LIVE_SYSTEM_DUMP