Como Diagnosticar um Aplicativo ARM64EC Que Não Inicia no Snapdragon X Windows 11
🔍 WiseChecker

Como Diagnosticar um Aplicativo ARM64EC Que Não Inicia no Snapdragon X Windows 11

Você instalou um aplicativo no seu dispositivo Snapdragon X Windows 11, mas ele não inicia, sem mensagem de erro ou com uma caixa de diálogo genérica de falha. O aplicativo é marcado como ARM64EC, projetado para rodar nativamente no ARM enquanto usa código x64 onde necessário. Este guia explica por que aplicativos ARM64EC podem falhar ao iniciar e como diagnosticar a causa raiz usando ferramentas internas do Windows.

ARM64EC é um formato binário híbrido que permite que um aplicativo execute código ARM64 nativamente enquanto ainda carrega bibliotecas x64 para compatibilidade. O processador Snapdragon X usa a arquitetura ARM64, então aplicativos ARM64EC devem funcionar sem sobrecarga de emulação. Causas comuns de falha incluem pré-requisitos ausentes, binários corrompidos ou dependências x64 incompatíveis que o emulador não consegue resolver.

Este artigo aborda o histórico técnico do ARM64EC, um processo de diagnóstico passo a passo e correções para as falhas de inicialização mais frequentes. Você aprenderá a usar o Visualizador de Eventos, o Dependency Walker e o Solucionador de Problemas de Compatibilidade do Windows para isolar o problema.

Principais Conclusões: Diagnosticando Falhas de Inicialização de Aplicativos ARM64EC no Snapdragon X

  • Visualizador de Eventos > Logs do Windows > Aplicativo: Mostra detalhes da falha, erros de carregamento de módulo e códigos de exceção do aplicativo com problema.
  • Configurações > Sistema > Sobre > Especificações do Windows: Confirma que o dispositivo executa Windows 11 no ARM64 e possui a compilação mais recente.
  • Dependency Walker (depends.com): Escaneia o binário ARM64EC para identificar dependências DLL x64 ou ARM64 ausentes.

ADVERTISEMENT

Por que Aplicativos ARM64EC Falham ao Iniciar no Snapdragon X Windows 11

ARM64EC significa ARM64 Emulation Compatible. É um formato de executável portátil que permite que um único binário contenha tanto código nativo ARM64 quanto seções de código x64. Em dispositivos Snapdragon X executando Windows 11, o sistema operacional carrega as seções ARM64 diretamente e usa o emulador x64 (Prism) para quaisquer caminhos de código x64. Essa abordagem híbrida reduz a sobrecarga de emulação em comparação com um aplicativo totalmente x64.

Uma falha de inicialização geralmente ocorre por um destes motivos:

  • Visual C++ Redistributable ausente: Aplicativos ARM64EC geralmente exigem a versão ARM64 do runtime VC++. Se apenas a versão x64 estiver instalada, o aplicativo pode falhar silenciosamente.
  • Instalação corrompida ou incompleta do aplicativo: Um binário danificado ou DLL auxiliar ausente impede que o carregador inicialize o aplicativo.
  • Compilação desatualizada do Windows: Os primeiros dispositivos Snapdragon X foram enviados com a compilação 22621 do Windows 11. O suporte a ARM64EC foi melhorado na compilação 22631 e posteriores. Executar uma compilação mais antiga pode causar incompatibilidade.
  • Conflito de driver: Certos drivers, especialmente drivers gráficos ou de segurança, podem bloquear o emulador Prism de carregar seções de código x64.

O processo de diagnóstico foca em isolar qual dessas causas raiz se aplica ao seu aplicativo específico. As seções abaixo detalham cada verificação em uma ordem lógica.

Passos para Diagnosticar e Corrigir uma Falha de Inicialização de Aplicativo ARM64EC

Passo 1: Verificar a Compilação e Arquitetura do Windows 11

Antes de solucionar o aplicativo, confirme se o sistema atende aos requisitos mínimos para suporte a ARM64EC.

  1. Abra Configurações
    Pressione Tecla Windows + I para abrir o aplicativo Configurações.
  2. Vá para Sistema > Sobre
    Clique em Sistema no painel esquerdo, depois role para baixo e clique em Sobre.
  3. Verifique as especificações do Windows
    Procure por Tipo de sistema. Deve estar escrito PC baseado em ARM64. Se mostrar PC baseado em x64, o Snapdragon X não está usando uma imagem Windows ARM64. Anote também o Número da compilação. O número da compilação deve ser 22631 ou superior. Se for inferior, atualize o Windows em Configurações > Windows Update > Verificar atualizações.

Passo 2: Verificar o Visualizador de Eventos para Detalhes da Falha

O Windows registra toda falha de aplicativo no Visualizador de Eventos. A entrada de log geralmente inclui um código de exceção que aponta para a causa raiz.

  1. Abra o Visualizador de Eventos
    Pressione Tecla Windows + R, digite eventvwr.msc e pressione Enter.
  2. Navegue até os logs de Aplicativo
    No painel esquerdo, expanda Logs do Windows e clique em Aplicativo.
  3. Filtre pelo aplicativo
    Clique em Filtrar log atual no painel direito. Em Origens do evento, selecione Erro de Aplicativo ou .NET Runtime se o aplicativo usar .NET. Clique em OK.
  4. Encontre o evento de erro
    Procure eventos com um ícone de X vermelho que ocorreram no momento da falha de inicialização. Clique duas vezes no evento. Na guia Geral, anote o Nome do módulo com falha e o Código de exceção. Por exemplo, o código de exceção 0xc0000135 indica uma DLL ausente. O código de exceção 0xc0000005 é uma violação de acesso, geralmente causada por um conflito de driver.

Passo 3: Verificar Pré-requisitos — Visual C++ Redistributable

Aplicativos ARM64EC exigem a versão ARM64 do Visual C++ Redistributable. A versão x64 sozinha é insuficiente porque as seções de código nativo ARM64 precisam do runtime ARM64.

  1. Abra Aplicativos Instalados
    Pressione Tecla Windows + I, depois vá para Aplicativos > Aplicativos instalados.
  2. Pesquise por Visual C++
    Na caixa de pesquisa, digite Visual C++. Você deve ver entradas como Microsoft Visual C++ 2015-2022 Redistributable (ARM64). Se apenas versões x64 aparecerem, o runtime ARM64 está ausente.
  3. Baixe o redistribuível ARM64
    Acesse a página oficial de download da Microsoft para o Visual C++ Redistributable. Selecione a versão ARM64 (o nome do arquivo do instalador termina com arm64.exe). Execute o instalador e reinicie o PC.

Passo 4: Usar o Dependency Walker para Encontrar DLLs Ausentes

O Dependency Walker é uma ferramenta gratuita que escaneia um binário e lista todas as DLLs necessárias. Para aplicativos ARM64EC, ele mostra dependências ARM64 e x64.

  1. Baixe o Dependency Walker
    Acesse depends.com e baixe a versão mais recente. Instale-o no seu dispositivo Snapdragon X.
  2. Abra o binário do aplicativo
    Inicie o Dependency Walker. Clique em File > Open e navegue até o executável principal do aplicativo com problema. Selecione-o e clique em Open.
  3. Revise a árvore de dependências
    A ferramenta escaneia o binário e mostra uma árvore de DLLs. Procure por qualquer DLL marcada com um ponto de interrogação vermelho ou um ícone de aviso amarelo. Um ponto de interrogação vermelho significa que a DLL está ausente. Um aviso amarelo significa que a DLL está presente, mas tem uma dependência não resolvida.
  4. Identifique DLLs x64 vs ARM64 ausentes
    Na coluna Module, cada DLL mostra seu tipo de CPU: x86, x64 ou ARM64. Se uma DLL x64 estiver ausente, o aplicativo pode ainda iniciar, mas o caminho de código x64 falhará. Se uma DLL ARM64 estiver ausente, o aplicativo provavelmente falhará imediatamente. Instale a DLL ausente do fornecedor do aplicativo ou reinstale o aplicativo.

Passo 5: Executar o Solucionador de Problemas de Compatibilidade do Windows

O Windows inclui um solucionador de problemas integrado que pode detectar e corrigir problemas comuns de compatibilidade para aplicativos ARM64EC.

  1. Clique com o botão direito no atalho do aplicativo
    Navegue até o executável ou atalho do aplicativo. Clique com o botão direito e selecione Propriedades.
  2. Abra a guia Compatibilidade
    Clique na guia Compatibilidade no topo.
  3. Execute o solucionador de problemas
    Clique em Executar solucionador de problemas de compatibilidade. O Windows escaneará o aplicativo e aplicará as configurações recomendadas. Siga as instruções na tela. Se o aplicativo iniciar após esta etapa, o problema era uma flag de compatibilidade ou uma permissão ausente.

ADVERTISEMENT

Se o Aplicativo Ainda Falhar ao Iniciar Após as Principais Etapas de Diagnóstico

Evento ID 1000 com módulo com falha ntdll.dll

Se o Visualizador de Eventos mostrar um módulo com falha de ntdll.dll com código de exceção 0xc0000005, o problema geralmente é um conflito de driver. O emulador Prism pode estar bloqueado por um driver de segurança ou um driver gráfico desatualizado. Atualize todos os drivers da página de suporte do fabricante do Snapdragon X. Se o problema persistir, desative temporariamente o software antivírus de terceiros e tente iniciar o aplicativo novamente.

O aplicativo exibe uma mensagem sobre a DLL api-ms-win-core-path-l1-1-0.dll ausente

Esta DLL faz parte do Universal C Runtime. No Windows 11 ARM64, este arquivo deve estar presente. Se estiver ausente, execute o Verificador de Arquivos do Sistema. Pressione Tecla Windows + X e selecione Terminal (Admin). Digite sfc /scannow e pressione Enter. Reinicie o PC após a conclusão da verificação. Se o SFC encontrar e reparar arquivos corrompidos, tente iniciar o aplicativo novamente.

O aplicativo inicia, mas mostra uma janela em branco

Uma janela em branco indica que a thread da interface do usuário do aplicativo iniciou, mas o mecanismo de renderização falhou. Isso geralmente acontece com aplicativos que usam DirectX ou OpenGL. Instale o driver gráfico ARM64 mais recente do fabricante do Snapdragon X. Instale também a versão ARM64 do DirectX End-User Runtime do site da Microsoft.

Item Aplicativo ARM64EC Aplicativo Totalmente x64 (Emulado)
Descrição Binário híbrido com código nativo ARM64 e seções de código x64 Aplicativo inteiro executa através de emulação x64 (Prism)
Desempenho Quase nativo para caminhos de código ARM64 Mais lento devido à sobrecarga total de emulação
Requisitos de dependência Requer runtimes VC++ ARM64 e x64 Requer apenas runtime VC++ x64
Complexidade do diagnóstico Maior — deve verificar dependências ARM64 e x64 Menor — apenas dependências x64 importam
Causa comum de falha Runtime VC++ ARM64 ausente ou binário corrompido Emulador Prism desatualizado ou DLL x64 ausente

Este artigo explicou como diagnosticar um aplicativo ARM64EC que não inicia no Snapdragon X Windows 11. Agora você sabe verificar a compilação do Windows, examinar o Visualizador de Eventos em busca de códigos de exceção, verificar o Visual C++ Redistributable ARM64 e usar o Dependency Walker para encontrar DLLs ausentes. Se o aplicativo ainda não iniciar, atualize os drivers e execute o Verificador de Arquivos do Sistema. Para problemas persistentes, considere entrar em contato com o fornecedor do aplicativo para confirmar se o binário foi compilado corretamente para ARM64EC.

ADVERTISEMENT