Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
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. Esse recurso é útil quando um sistema deixa de responder ou quando você precisa capturar informações de diagnóstico.
Este artigo explica como:
- Configurar as definições do Registo para ativar falhas iniciadas pelo teclado
- Usar atalhos de teclado para disparar uma falha do sistema
- Configurar atalhos de teclado alternativos
Esta funcionalidade 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).
Atenção
Forçar uma falha do sistema faz com que ele pare imediatamente e pode resultar em perda de dados. Use esse recurso somente quando necessário para fins de depuração e garanta que você salve seu trabalho.
Configuração
Configure os seguintes parâmetros para causar uma falha do sistema utilizando o teclado:
Se você quiser que um arquivo de despejo de memória seja gravado, você deve habilitar 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 Ativando um arquivo de despejo de 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 o crash iniciado pelo teclado no registo.
- Na chave
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\kbdhid\Parametersdo Registro , crie um valor chamadoCrashOnCtrlScroll - Defina um valor de
REG_DWORDigual a 0x01.
- Na chave
Com os teclados do Hyper-V, deve ativar o crash iniciado pelo teclado no registo do sistema.
- Na chave
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\hyperkbd\Parametersdo Registro , crie um valor chamadoCrashOnCtrlScroll - Defina-o como 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 das chaves de registro USB e PS/2 para permitir o uso de qualquer teclado.
Você deve reiniciar o sistema para que essas configurações entrem em vigor.
Quando a reinicialização estiver concluída, a falha do teclado pode ser iniciada usando a seguinte sequência de teclas de atalho: Mantenha pressionada a tecla CTRL mais à direita e pressione a tecla SCROLL LOCK duas vezes.
Em seguida, o sistema chama KeBugCheck e emite Bug check 0xE2: MANUALLY_INITIATED_CRASH. A menos que os despejos de memória estejam desativados, um arquivo de despejo de memória é gravado.
Se um depurador do kernel estiver conectado à máquina que sofreu um acidente, a máquina acessa o depurador do kernel após a gravação do arquivo de despejo de memória.
Definir atalhos de teclado alternativos para forçar uma falha do sistema a partir do teclado
Você pode configurar valores alternativos nas seguintes subchaves do Registro para sequências de atalho 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 do Registro REG_DWORD nessas subchaves:
Dump1Keys
O valor do registo Dump1Keys é um bitmap da primeira tecla de atalho a utilizar. Por exemplo, em vez de usar a tecla CTRL mais à direita para iniciar a sequência de teclas de atalho, você pode definir a primeira tecla de atalho como sendo a tecla SHIFT mais à esquerda.
A tabela a seguir descreve os valores hexadecimais para a primeira tecla de atalho.
| Valor | Primeira tecla usada na sequência de atalhos de teclado |
|---|---|
| 0x01 | Tecla SHIFT mais à direita |
| 0x02 | Tecla CTRL mais à direita |
| 0x04 | Tecla ALT mais à direita |
| 0x10 | Tecla SHIFT mais à esquerda |
| 0x20 | Tecla CTRL mais à esquerda |
| 0x40 | Tecla ALT mais à esquerda |
Você pode atribuir Dump1Keys um valor que habilite uma ou mais teclas como a primeira tecla usada na sequência de atalhos de teclado. Por exemplo, atribua Dump1Keys um valor de 0x11 para definir as teclas SHIFT mais à direita e mais à esquerda como a primeira tecla na sequência de atalhos de teclado.
Dump2Key
O Dump2Key valor do Registro é o índice na tabela de códigos de verificação para o layout de teclado do computador de destino. Veja a tabela real 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 verificação diferente.
Se definires atalhos de teclado alternativos para forçar uma falha do sistema a partir de um teclado USB ou PS/2, tens de definir o valor do registo CrashOnCtrlScroll para 0 ou removê-lo do registo.
Example
Nesse cenário, um laptop usa um driver de teclado PS2 e um teclado HID externo é conectado. A configuração de ambos os valores permite provocar uma falha manual do sistema a partir de um dos teclados. Você pode forçar uma falha manual do sistema segurando a tecla de controle 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 congele de tal forma que a sequência de atalhos de teclado não funcione. Usar a sequência de atalhos de teclado para iniciar um crash funciona mesmo quando CTRL + ALT + DELETE não funciona.
Forçar uma falha do sistema a partir do teclado não funciona 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 que o processo de despejo de memória seja executado, opera em um IRQL menor do que o driver i8042prt.sys .
Consulte também
Verificação de falhas 0xE2: MANUALLY_INITIATED_CRASH
Analisando um arquivo de despejo de Kernel-Mode com o WinDbg
Verificação de Erro 0x161: LIVE_SYSTEM_DUMP
Gerar a informação de falha de sistema completa ou um kernel