Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Ao solucionar problemas do sistema, talvez seja necessário gerar um arquivo de despejo de memória para analisar o estado do sistema. Você pode forçar uma falha do sistema diretamente do teclado usando combinações de teclas específicas. Essa funcionalidade é útil quando um sistema não responde ou quando você precisa capturar informações de diagnóstico.
Este artigo explica como:
- Configurar as configurações do Registro para habilitar crashes iniciados pelo teclado
- Usar atalhos de teclado para disparar uma falha no sistema
- Configurar atalhos de teclado alternativos
Esse recurso funciona com teclados PS/2 (Windows 2000 e posterior), teclados USB (Windows Vista e posterior) e teclados Hyper-V (Windows 10 versão 1903 e posterior).
Cuidado
Forçar uma falha do sistema imediatamente interrompe seu sistema e pode resultar em perda de dados. Use esse recurso somente quando necessário para fins de depuração e certifique-se de salvar seu trabalho.
Configuração
Defina as seguintes configurações para ocasionar uma queda do sistema usando o teclado:
Se quiser que um arquivo de despejo de falhas seja gravado, você deve ativar esses arquivos de despejo. Escolha o caminho e o nome do arquivo, e selecione o tamanho do arquivo de despejo. Para obter mais informações, consulte Como ativar um arquivo de despejo no modo kernel.
Para teclados PS/2: Habilite a falha iniciada pelo teclado no Registro:
- Navegue até
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\i8042prt\Parameters - Criar um valor chamado
CrashOnCtrlScroll - Defina-o como
REG_DWORDvalor de0x01
- Navegue até
Com teclados USB, é necessário ativar a falha iniciada pelo teclado no registro.
- Na chave
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\kbdhid\Parametersdo Registro, crie um valor chamadoCrashOnCtrlScroll - Defina-o igual a um
REG_DWORDvalor de 0x01.
- Na chave
Com teclados Hyper-V, é necessário ativar a falha iniciada pelo teclado no registro.
- Na chave
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\hyperkbd\Parametersdo Registro, crie um valor chamadoCrashOnCtrlScroll - Defina-o igual a um
REG_DWORDvalor de 0x01.
- Na chave
Alguns laptops usam o driver PS/2 para o teclado embutido e também suportam teclados HID externos. Para esses sistemas, considere a criação de chaves de registro USB e PS/2 para permitir o uso de qualquer um dos teclados.
Você deve reiniciar o sistema para que essas configurações tenham efeito.
Depois que a reinicialização for concluída, a falha do teclado poderá ser iniciada com a seguinte sequência de teclas de atalho: mantenha pressionada a tecla CTRL à direita e pressione a tecla SCROLL LOCK duas vezes.
Em seguida, o sistema chama o KeBugCheck e faz a Verificação de bugs 0xE2: MANUALLY_INITIATED_CRASH. A menos que os despejos de memória estejam desabilitados, um arquivo de despejo de memória será gravado.
Se um depurador de kernel estiver anexado ao computador com falha, o computador invadirá o depurador de kernel depois que o arquivo de despejo de falha for gravado.
Definir atalhos de teclado alternativos para forçar uma falha do sistema pelo teclado
Você pode configurar valores alternativos nas seguintes subchaves do Registro para sequências de atalhos de teclado para gerar o arquivo de despejo de memória:
Para teclados PS/2:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\i8042prt\crashdumpPara teclados USB:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\kbdhid\crashdumpPara teclados Hyper-V:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\hyperkbd\crashdump
Você deve criar os seguintes valores REG_DWORD de registro nessas subchaves:
Dump1Keys
O valor de registro Dump1Keys é um mapa de bits da primeira tecla de atalho a ser usada. Por exemplo, em vez de usar a tecla CTRL à direita para iniciar a sequência de teclas de atalho, você pode definir a primeira tecla de atalho como sendo a tecla SHIFT à esquerda.
A tabela a seguir descreve os valores hexadecimal da primeira chave ativa.
| Valor | Primeira tecla usada na sequência de atalhos do teclado |
|---|---|
| 0x01 | Tecla SHIFT à direita |
| 0x02 | Tecla CTRL à direita |
| 0x04 | Tecla ALT à direita |
| 0x10 | Tecla SHIFT à esquerda |
| 0x20 | Tecla CTRL à esquerda |
| 0x40 | Tecla ALT à esquerda |
Você pode atribuir a Dump1Keys um valor que habilita uma ou mais teclas como a primeira tecla usada na sequência de atalhos do teclado. Por exemplo, atribua a Dump1Keys um valor de 0x11 para definir as teclas SHIFT à direita e à esquerda como a primeira tecla na sequência de atalhos do teclado.
Dump2Key
O valor de registro Dump2Key é o índice na tabela de códigos de varredura para o layout de teclado do computador de destino. Veja a tabela atual no driver:
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 };
O índice 124 (sysreq) é um caso especial porque um teclado de 84 teclas tem um código de varredura diferente.
Se você definir atalhos de teclado alternativos para forçar uma falha do sistema a partir de um teclado USB ou PS/2, deverá definir o valor de registro CrashOnCtrlScroll como 0 ou removê-lo do registro.
Example
Nesse cenário, um laptop usa um driver de teclado PS2 e um teclado HID externo é anexado. A definição de ambos os valores permite acionar uma falha manual do sistema a partir de qualquer um dos teclados. Você pode forçar uma falha manual do sistema segurando a tecla 'Ctrl' mais à direita e pressionando a barra de espaço duas vezes quando a seguinte chave do Registro estiver definida.
[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
Limitações
É possível, mas raro, que um sistema trave de tal forma que a sequência de atalhos do teclado não funcione. O uso da sequência de atalhos de teclado para iniciar um crash funciona até mesmo em muitos casos onde CTRL+ALT+DELETE não funciona.
Forçar uma falha do sistema pelo teclado não funcionará se o computador parar de responder em um alto nível de solicitação de interrupção (IRQL). Essa limitação existe porque o driver Kbdhid.sys, que permite a execução do processo de despejo de memória, opera em um IRQL mais baixo do que o driver i8042prt.sys.
Confira também
Verificação de bugs 0xE2: MANUALLY_INITIATED_CRASH
Analisando um arquivo de despejo no modo kernel com o WinDbg
Verificação de bugs 0x161: LIVE_SYSTEM_DUMP