Quando o Windows 11 trava com uma tela azul, o sistema pode salvar informações de diagnóstico em um arquivo de despejo de memória. Por padrão, o Windows cria um despejo automático que pode não conter todos os dados necessários para analisar um código de verificação de erro específico. Um despejo de memória completo contém todo o conteúdo da RAM física no momento da falha. Este artigo explica como configurar o Windows 11 para capturar um despejo de memória completo para uma verificação de erro específica, como CRITICAL_PROCESS_DIED ou MEMORY_MANAGEMENT.
Despejos de memória completos são arquivos grandes, do tamanho da RAM do sistema. Um sistema com 16 GB de RAM produzirá um arquivo de despejo de 16 GB. Você precisa de espaço livre em disco suficiente na unidade do sistema para armazenar o arquivo. O arquivo de despejo é salvo em %SystemRoot%\MEMORY.DMP por padrão. Após capturar o despejo, você pode analisá-lo com ferramentas como WinDbg para identificar o driver ou processo que causou a falha.
Este guia aborda as configurações de registro e sistema necessárias para forçar um despejo de memória completo para uma verificação de erro específica. Também explica como verificar se o despejo foi criado e como evitar erros comuns de configuração.
Principais Conclusões: Configurando Despejos de Memória Completos para Análise de Verificação de Erro
- Caminho do registro HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CrashControl: Contém os valores CrashDumpEnabled e FilterPages que controlam o tipo e o comportamento do despejo.
- Propriedades do Sistema > Avançado > Inicialização e Recuperação > Configurações: O método gráfico para definir o tipo de despejo como Despejo de memória completo e especificar o local do arquivo de despejo.
- Verificação com WMIC ou PowerShell: Use o comando “wmic RECOVEROS get DebugInfoType” ou “Get-WmiObject Win32_OSRecoveryConfiguration” para confirmar a configuração atual do despejo.
Entendendo Despejos de Memória Completos e Segmentação de Verificação de Erro
Um despejo de memória completo grava todo o conteúdo da memória física no disco quando ocorre uma verificação de erro. Isso inclui todos os dados em modo kernel e modo usuário, drivers carregados e arquivos mapeados em memória. Diferente de um despejo de memória do kernel, que omite páginas do modo usuário, ou de um despejo de memória pequeno, que registra apenas o código de parada e a pilha, um despejo completo fornece dados forenses completos para depuração pós-morte.
O Windows 11 usa o valor de registro CrashDumpEnabled para determinar o tipo de despejo. Um valor de 1 habilita um despejo de memória completo. Um valor de 2 habilita um despejo do kernel. Um valor de 3 habilita um despejo pequeno. O valor FilterPages controla se o Windows exclui páginas pertencentes a processos que não causaram a falha. Quando FilterPages está definido como 1, o Windows filtra páginas de processos não relacionados à verificação de erro, reduzindo o tamanho do despejo, mas perdendo dados. Para um despejo completo verdadeiro contendo toda a RAM, FilterPages deve ser definido como 0.
Os códigos de verificação de erro são valores hexadecimais como 0x0000007B (INACCESSIBLE_BOOT_DEVICE) ou 0x0000003B (SYSTEM_SERVICE_EXCEPTION). O arquivo de despejo captura o estado no momento exato em que a verificação de erro foi gerada. Segmentar uma verificação de erro específica significa configurar o sistema antes que a falha ocorra. Você não pode alterar retroativamente o tipo de despejo após uma falha.
Passos para Configurar um Despejo de Memória Completo para uma Verificação de Erro Específica
Siga estes passos para configurar o Windows 11 para capturar um despejo de memória completo. Você precisa de privilégios administrativos para modificar as configurações do sistema e o registro.
- Abra Propriedades do Sistema
Pressione Windows + R para abrir a caixa de diálogo Executar. Digite sysdm.cpl e pressione Enter. Isso abre a janela Propriedades do Sistema. - Navegue até Inicialização e Recuperação
Selecione a guia Avançado. Em Inicialização e Recuperação, clique em Configurações. - Defina o tipo de despejo como Despejo de memória completo
Na caixa de diálogo Inicialização e Recuperação, localize a seção Gravar informações de depuração. Na lista suspensa, selecione Despejo de memória completo. Certifique-se de que o caminho do arquivo de despejo esteja definido como %SystemRoot%\MEMORY.DMP. Clique em OK para fechar a caixa de diálogo e, em seguida, clique em OK para fechar Propriedades do Sistema. - Desabilite a substituição automática do despejo de memória via registro
Pressione Windows + R, digite regedit e pressione Enter. Navegue até HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CrashControl. No painel direito, localize o valor DWORD FilterPages. Se não existir, clique com o botão direito em uma área vazia, selecione Novo > Valor DWORD (32 bits) e nomeie como FilterPages. Clique duas vezes em FilterPages e defina seu valor como 0. Isso garante que nenhuma página seja filtrada do despejo. Clique em OK. - Configure o limite de tamanho do arquivo de despejo
Na mesma chave de registro, localize o valor DWORD DumpFileSizePercent. Se não existir, crie-o. Defina seu valor como 100 para permitir que o arquivo de despejo use até 100% do espaço da unidade do sistema. Clique em OK. Feche o Editor do Registro. - Verifique a configuração
Abra o Prompt de Comando como administrador. Digite wmic RECOVEROS get DebugInfoType e pressione Enter. A saída deve exibir 1 para Despejo de memória completo. Alternativamente, execute Get-WmiObject Win32_OSRecoveryConfiguration | Select-Object DebugInfoType no PowerShell. O valor deve ser 1. - Garanta espaço em disco suficiente
Abra o Explorador de Arquivos e verifique o espaço livre na unidade onde o Windows está instalado. O despejo de memória completo requer espaço livre igual ao tamanho da RAM do sistema mais uma margem. Para 16 GB de RAM, você precisa de pelo menos 18 GB livres. Exclua arquivos desnecessários ou mova dados para outra unidade se o espaço estiver baixo.
Problemas Comuns e Coisas a Evitar
O arquivo de despejo não é criado após uma falha
Isso ocorre quando a unidade do sistema fica sem espaço antes que o despejo seja gravado. O Windows não cria um despejo parcial. Verifique o espaço livre na unidade. Verifique também se o arquivo de paginação é grande o suficiente. O Windows usa o arquivo de paginação como buffer temporário para o despejo. O arquivo de paginação deve ter pelo menos o tamanho da RAM do sistema mais 1 MB. Para verificar, vá em Configurações > Sistema > Sobre > Configurações avançadas do sistema > Desempenho > Avançado > Memória virtual. Certifique-se de que o tamanho inicial e máximo estejam definidos para um valor igual ou maior que o tamanho da sua RAM.
O arquivo de despejo é menor que a RAM do sistema
Isso acontece quando FilterPages está definido como 1. O Windows exclui páginas de processos não relacionados à falha. Para capturar toda a RAM, defina FilterPages como 0 conforme mostrado no Passo 4 acima. Verifique também se o tipo de despejo é Despejo de memória completo, não Despejo de memória do kernel. Despejos do kernel são tipicamente muito menores que a RAM completa.
Falha na inicialização após habilitar o despejo de memória completo
A configuração de despejo de memória completo sozinha não causa falha na inicialização. No entanto, se a unidade do sistema estiver quase cheia, o Windows pode falhar ao gravar o despejo durante uma falha e tentar a recuperação na próxima inicialização. Isso pode levar a um loop de inicialização. Sempre garanta pelo menos 20% de espaço livre na unidade do sistema antes de habilitar despejos completos. Se ocorrer um loop de inicialização, inicialize no Modo de Segurança e altere o tipo de despejo de volta para Despejo de memória automático.
Despejo de Memória Completo vs Despejo de Memória Automático: Principais Diferenças
| Item | Despejo de Memória Completo | Despejo de Memória Automático |
|---|---|---|
| Descrição | Captura todo o conteúdo da RAM física no momento da falha | Seleciona o tipo de despejo com base no contexto da falha; geralmente um despejo do kernel |
| Tamanho do arquivo | Igual ao tamanho da RAM do sistema | Aproximadamente 30% a 50% do tamanho da RAM do sistema |
| Dados em modo kernel | Todos os dados em modo kernel estão incluídos | Todos os dados em modo kernel estão incluídos |
| Dados em modo usuário | Todas as páginas em modo usuário estão incluídas | Apenas páginas em modo usuário do processo que falhou estão incluídas |
| Requisito de espaço em disco | Alto; deve ser igual à RAM mais margem | Moderado; tipicamente 4-8 GB |
| Melhor caso de uso | Depuração de problemas complexos de driver ou corrupção de memória | Análise geral de falhas para a maioria dos usuários |
Após configurar o despejo de memória completo, acione a verificação de erro específica reproduzindo as condições que causam a falha. Por exemplo, se a verificação de erro ocorre quando um dispositivo USB específico é conectado, conecte esse dispositivo e execute as ações que anteriormente causaram a falha. O Windows grava o arquivo de despejo no caminho especificado. Você pode então analisá-lo com WinDbg carregando o arquivo de despejo e executando o comando !analyze -v para ver o código de parada, o rastreamento de pilha e o driver ou módulo que causou a falha. Para monitoramento contínuo, considere habilitar o despejo em um ambiente de teste antes de aplicá-lo em sistemas de produção. Use o valor de registro DumpFileSizePercent para limitar o tamanho do despejo se o espaço em disco for limitado, mas observe que definir abaixo de 100 pode truncar o despejo e perder dados críticos.