키보드에서 시스템 크래시 강제 적용
다음 유형의 키보드는 시스템 크래시가 직접 발생할 수 있습니다.
i8042prt 포트 에 연결된 PS/2 키보드 이 기능은 Windows 2000 이상 버전의 Windows 운영 체제에서 사용할 수 있습니다.
USB 키보드
이 기능은 Windows Vista 이상 버전의 Windows 운영 체제에서 사용할 수 있습니다.Hyper-V 키보드
이 기능은 Windows 10 버전 1903 이상 버전의 Windows 운영 체제에서 사용할 수 있습니다.
구성
키보드를 사용하여 시스템 작동 중단을 사용하도록 다음 설정을 구성합니다.
크래시 덤프 파일을 쓰려면 이러한 덤프 파일을 사용하도록 설정해야 합니다. 경로 및 파일 이름을 선택하고 덤프 파일의 크기를 선택합니다. 자세한 내용은 커널 모드 덤프 파일 사용 설정을 참조 하세요.
PS/2 키보드를 사용하면 레지스트리에서 키보드 시작 크래시가 활성화되어야 합니다. 레지스트리 키
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\i8042prt\Parameters
에서 명명된CrashOnCtrlScroll
값을 만들고 0x01 값과REG_DWORD
동일하게 설정합니다.USB 키보드를 사용하면 레지스트리에서 키보드 시작 크래시가 활성화되어야 합니다. 레지스트리 키
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\kbdhid\Parameters
에서 명명된CrashOnCtrlScroll
값을 만들고 0x01 값과REG_DWORD
동일하게 설정합니다.Hyper-V 키보드를 사용하면 레지스트리에서 키보드 시작 크래시가 활성화되어야 합니다. 레지스트리 키
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\hyperkbd\Parameters
에서 명명된CrashOnCtrlScroll
값을 만들고 0x01 값과REG_DWORD
동일하게 설정합니다.
일부 노트북은 기본 제공 키보드에 PS/2 드라이버를 사용하고 외부 HID 키보드도 지원합니다. 이러한 시스템의 경우 두 키보드 중 하나를 사용할 수 있도록 USB 및 PS/2 레지스트리 키를 모두 만드는 것이 좋습니다.
이러한 설정을 적용하려면 시스템을 다시 시작해야 합니다.
다시 시작이 완료되면 다음 바로 가기 키 시퀀스를 사용하여 키보드 충돌을 시작할 수 있습니다. 가장 오른쪽 CTRL 키를 누른 채 SCROLL LOCK 키를 두 번 누릅니다.
그런 다음 시스템에서 버그 확인 0xE2 호출 KeBugCheck
하고 발급 합니다. 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 키로 설정할 수 있습니다.
첫 번째 핫 키의 16진수 값은 다음 표에 설명되어 있습니다.
값 | 바로 가기 키 시퀀스에 사용되는 첫 번째 키 |
---|---|
0x01 | 맨 오른쪽 시프트 키 |
0x02 | 맨 오른쪽 CTRL 키 |
0x04 | 맨 오른쪽 ALT 키 |
0x10 | 가장 왼쪽 시프트 키 |
0x20 | 맨 왼쪽 CTRL 키 |
0x40 | 맨 왼쪽 ALT 키 |
하나 이상의 키를 바로 가기 키 시퀀스에 사용되는 첫 번째 키로 사용하도록 설정하는 값을 할당 Dump1Keys
할 수 있습니다. 예를 들어 0x11 값을 할당 Dump1Keys
하여 바로 가기 키 시퀀스의 첫 번째 키로 맨 오른쪽 키와 맨 왼쪽 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 키보드에서 시스템 크래시가 강제로 발생하도록 대체 바로 가기 키를 정의하는 경우 레지스트리 값을 0으로 설정 CrashOnCtrlScroll
하거나 레지스트리에서 제거해야 합니다.
예: 이 시나리오에서는 랩톱에서 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 드라이버가 i8042prt.sys 드라이버보다 낮은 IRQL에서 작동하기 때문입니다.
참고 항목
버그 검사 0xE2: MANUALLY_INITIATED_CRASH
커널 모드 덤프 파일의 종류입니다.