Cómo diagnosticar una aplicación ARM64EC que no se inicia en snapdragon x con Windows 11
🔍 WiseChecker

Cómo diagnosticar una aplicación ARM64EC que no se inicia en snapdragon x con Windows 11

Instaló una aplicación en su dispositivo Snapdragon X con Windows 11, pero no se inicia, sin mensaje de error o con un cuadro de diálogo de bloqueo genérico. La aplicación está marcada como ARM64EC, un formato diseñado para ejecutarse de forma nativa en ARM y usar código x64 cuando sea necesario. Esta guía explica por qué las aplicaciones ARM64EC pueden no iniciarse y cómo diagnosticar la causa raíz con las herramientas integradas de Windows.

ARM64EC es un formato binario híbrido que permite que una aplicación ejecute código ARM64 de forma nativa y, a la vez, cargue bibliotecas x64 para mantener la compatibilidad. El procesador Snapdragon X usa la arquitectura ARM64, por lo que las aplicaciones ARM64EC deberían funcionar sin la sobrecarga de la emulación. Las causas comunes de fallo incluyen requisitos previos ausentes, binarios dañados o dependencias x64 incompatibles que el emulador no puede resolver.

Este artículo abarca los antecedentes técnicos de ARM64EC, un proceso de diagnóstico paso a paso y soluciones para los fallos de inicio más frecuentes. Aprenderá a usar el Visor de eventos, Dependency Walker y el Solucionador de problemas de compatibilidad de Windows para aislar el problema.

Puntos clave: diagnosticar fallos de inicio de aplicaciones ARM64EC en Snapdragon X

  • Visor de eventos > Registros de Windows > Aplicación: Muestra detalles de bloqueo, errores de carga de módulos y códigos de excepción de la aplicación que falló.
  • Configuración > Sistema > Acerca de > Especificaciones de Windows: Confirma que el dispositivo ejecuta Windows 11 en ARM64 y tiene la compilación más reciente.
  • Dependency Walker (depends.com): Analiza el binario ARM64EC para identificar dependencias DLL x64 o ARM64 faltantes.

ADVERTISEMENT

Por qué las aplicaciones ARM64EC no se inician en Snapdragon X con Windows 11

ARM64EC significa ARM64 Emulation Compatible (compatible con emulación ARM64). Es un formato ejecutable portátil que permite que un único binario contenga tanto código nativo ARM64 como secciones de código x64. En los dispositivos Snapdragon X con Windows 11, el sistema operativo carga directamente las secciones ARM64 y usa el emulador x64 (Prism) para cualquier ruta de código x64. Este enfoque híbrido reduce la sobrecarga de emulación en comparación con una aplicación totalmente x64.

Un fallo de inicio suele producirse por una de estas razones:

  • Falta el Visual C++ Redistributable: Las aplicaciones ARM64EC suelen requerir la versión ARM64 del runtime de VC++. Si solo está instalada la versión x64, la aplicación puede fallar de forma silenciosa.
  • Instalación de la aplicación dañada o incompleta: Un binario dañado o una DLL auxiliar faltante impide que el cargador inicialice la aplicación.
  • Compilación de Windows desactualizada: Los primeros dispositivos Snapdragon X se enviaron con la compilación 22621 de Windows 11. La compatibilidad con ARM64EC mejoró en la compilación 22631 y posteriores. Ejecutar una compilación anterior puede causar incompatibilidad.
  • Conflicto de controladores: Ciertos controladores, especialmente los de gráficos o seguridad, pueden bloquear que el emulador Prism cargue secciones de código x64.

El proceso de diagnóstico se centra en aislar cuál de estas causas raíz se aplica a su aplicación específica. Las secciones siguientes recorren cada comprobación en un orden lógico.

Pasos para diagnosticar y corregir un fallo de inicio de una aplicación ARM64EC

Paso 1: Verificar la compilación y la arquitectura de Windows 11

Antes de solucionar problemas de la aplicación, confirme que el sistema cumple los requisitos mínimos para la compatibilidad con ARM64EC.

  1. Abrir Configuración
    Presione Tecla Windows + I para abrir la aplicación Configuración.
  2. Ir a Sistema > Acerca de
    Haga clic en Sistema en el panel izquierdo, luego desplácese hacia abajo y haga clic en Acerca de.
  3. Comprobar las especificaciones de Windows
    Busque Tipo de sistema. Debe indicar PC basado en ARM64. Si muestra PC basado en x64, el Snapdragon X no está usando una imagen de Windows ARM64. Anote también la Compilación del SO. El número de compilación debe ser 22631 o superior. Si es inferior, actualice Windows mediante Configuración > Windows Update > Buscar actualizaciones.

Paso 2: Consultar el Visor de eventos para ver los detalles del bloqueo

Windows registra cada bloqueo de aplicación en el Visor de eventos. La entrada del registro suele incluir un código de excepción que apunta a la causa raíz.

  1. Abrir el Visor de eventos
    Presione Tecla Windows + R, escriba eventvwr.msc y presione Entrar.
  2. Ir a los registros de Aplicación
    En el panel izquierdo, expanda Registros de Windows y haga clic en Aplicación.
  3. Filtrar por la aplicación
    Haga clic en Filtrar registro actual en el panel derecho. En Orígenes de eventos, seleccione Application Error o .NET Runtime si la aplicación usa .NET. Haga clic en Aceptar.
  4. Buscar el evento de error
    Busque eventos con un icono de X roja que se produjeran en el momento del inicio fallido. Haga doble clic en el evento. En la pestaña General, anote el Nombre del módulo con error y el Código de excepción. Por ejemplo, el código de excepción 0xc0000135 indica una DLL faltante. El código de excepción 0xc0000005 es una infracción de acceso, a menudo causada por un conflicto de controladores.

Paso 3: Verificar los requisitos previos — Visual C++ Redistributable

Las aplicaciones ARM64EC requieren la versión ARM64 del Visual C++ Redistributable. La versión x64 por sí sola no es suficiente porque las secciones de código nativo ARM64 necesitan el runtime ARM64.

  1. Abrir Aplicaciones instaladas
    Presione Tecla Windows + I, luego vaya a Aplicaciones > Aplicaciones instaladas.
  2. Buscar Visual C++
    En el cuadro de búsqueda, escriba Visual C++. Debería ver entradas como Microsoft Visual C++ 2015-2022 Redistributable (ARM64). Si solo aparecen versiones x64, falta el runtime ARM64.
  3. Descargar el redistribuible ARM64
    Vaya a la página oficial de descarga de Microsoft para Visual C++ Redistributable. Seleccione la versión ARM64 (el nombre del archivo de instalación termina en arm64.exe). Ejecute el instalador y reinicie el equipo.

Paso 4: Usar Dependency Walker para encontrar DLL faltantes

Dependency Walker es una herramienta gratuita que analiza un binario y enumera todas las DLL necesarias. Para las aplicaciones ARM64EC, muestra dependencias tanto ARM64 como x64.

  1. Descargar Dependency Walker
    Vaya a depends.com y descargue la versión más reciente. Instálela en su dispositivo Snapdragon X.
  2. Abrir el binario de la aplicación
    Inicie Dependency Walker. Haga clic en File > Open y navegue hasta el ejecutable principal de la aplicación que falla. Selecciónelo y haga clic en Open.
  3. Revisar el árbol de dependencias
    La herramienta analiza el binario y muestra un árbol de DLL. Busque cualquier DLL marcada con un signo de interrogación rojo o un icono de advertencia amarillo. Un signo de interrogación rojo significa que falta la DLL. Una advertencia amarilla significa que la DLL está presente pero tiene una dependencia sin resolver.
  4. Identificar las DLL x64 y ARM64 faltantes
    En la columna Module, cada DLL muestra su tipo de CPU: x86, x64 o ARM64. Si falta una DLL x64, la aplicación puede iniciarse igualmente, pero la ruta de código x64 fallará. Si falta una DLL ARM64, es probable que la aplicación se bloquee de inmediato. Instale la DLL faltante del proveedor de la aplicación o reinstale la aplicación.

Paso 5: Ejecutar el Solucionador de problemas de compatibilidad de Windows

Windows incluye un solucionador de problemas integrado que puede detectar y corregir problemas de compatibilidad comunes de las aplicaciones ARM64EC.

  1. Hacer clic con el botón derecho en el acceso directo de la aplicación
    Navegue hasta el ejecutable o el acceso directo de la aplicación. Haga clic con el botón derecho y seleccione Propiedades.
  2. Abrir la pestaña Compatibilidad
    Haga clic en la pestaña Compatibilidad en la parte superior.
  3. Ejecutar el solucionador de problemas
    Haga clic en Ejecutar el solucionador de problemas de compatibilidad. Windows analizará la aplicación y aplicará la configuración recomendada. Siga las indicaciones en pantalla. Si la aplicación se inicia después de este paso, el problema era una marca de compatibilidad o un privilegio faltante.

ADVERTISEMENT

Si la aplicación sigue sin iniciarse después de los pasos de diagnóstico principales

Id. de evento 1000 con el módulo con error ntdll.dll

Si el Visor de eventos muestra un módulo con error ntdll.dll con el código de excepción 0xc0000005, el problema suele ser un conflicto de controladores. Es posible que un controlador de seguridad o un controlador de gráficos desactualizado bloquee el emulador Prism. Actualice todos los controladores desde la página de soporte del fabricante del Snapdragon X. Si el problema persiste, desactive temporalmente el software antivirus de terceros e intente iniciar la aplicación de nuevo.

La aplicación muestra un mensaje sobre la falta de api-ms-win-core-path-l1-1-0.dll

Esta DLL forma parte del Universal C Runtime. En Windows 11 ARM64, este archivo debería estar presente. Si falta, ejecute el Comprobador de archivos de sistema. Presione Tecla Windows + X y seleccione Terminal (Admin). Escriba sfc /scannow y presione Entrar. Reinicie el equipo cuando finalice el análisis. Si SFC encuentra y repara archivos dañados, intente iniciar la aplicación de nuevo.

La aplicación se inicia pero muestra una ventana en blanco

Una ventana en blanco indica que el subproceso de interfaz de usuario de la aplicación se inició, pero el motor de representación falló. Esto suele ocurrir con aplicaciones que usan DirectX u OpenGL. Instale el controlador de gráficos ARM64 más reciente del fabricante del Snapdragon X. Instale también la versión ARM64 de DirectX End-User Runtime desde el sitio web de Microsoft.

Elemento Aplicación ARM64EC Aplicación totalmente x64 (emulada)
Descripción Binario híbrido con código nativo ARM64 y secciones de código x64 Toda la aplicación se ejecuta mediante emulación x64 (Prism)
Rendimiento Casi nativo para las rutas de código ARM64 Más lento debido a la sobrecarga de la emulación completa
Requisitos de dependencias Requiere los runtimes de VC++ ARM64 y x64 Solo requiere el runtime de VC++ x64
Complejidad del diagnóstico Mayor — se deben comprobar las dependencias ARM64 y x64 Menor — solo importan las dependencias x64
Causa común de fallo Falta el runtime de VC++ ARM64 o el binario está dañado Emulador Prism desactualizado o DLL x64 faltante

Este artículo explicó cómo diagnosticar una aplicación ARM64EC que no se inicia en Snapdragon X con Windows 11. Ahora sabe que debe comprobar la compilación de Windows, examinar el Visor de eventos para ver los códigos de excepción, verificar el Visual C++ Redistributable ARM64 y usar Dependency Walker para encontrar DLL faltantes. Si la aplicación sigue sin iniciarse, actualice los controladores y ejecute el Comprobador de archivos de sistema. Para problemas persistentes, considere ponerse en contacto con el proveedor de la aplicación para confirmar que el binario está compilado correctamente para ARM64EC

ADVERTISEMENT