Error 0x00000079: MISMATCHED_HAL

El código de pantalla azul 0x00000079 con el mensaje MISMATCHED_HAL indica que la capa de abstracción de hardware (HAL, por sus siglas en inglés) instalada en el sistema no es compatible con el kernel de Windows o con la plataforma de hardware subyacente. La HAL es el componente del sistema operativo que aísla al kernel de las diferencias específicas del hardware (como el tipo de procesador, el controlador de interrupciones o la gestión de energía). Cuando existe una discrepancia grave —por ejemplo, una HAL diseñada para un sistema multiprocesador ACPI en una máquina con una BIOS antigua, o una HAL de un equipo físico ejecutándose dentro de una máquina virtual mal configurada— el arranque se detiene inmediatamente con este error. Este bug check es casi exclusivo de la fase de inicio del sistema y suele aparecer tras clonar una instalación de Windows entre hardware muy diferente, actualizar la BIOS o modificar manualmente los archivos de arranque. Aunque no es de los fallos más frecuentes, su resolución requiere comprender cómo Windows selecciona la HAL y qué ajustes pueden forzarse para restaurar la compatibilidad.

¿Qué significa exactamente este error?

MISMATCHED_HAL es una verificación que el núcleo de Windows realiza durante las primeras etapas del arranque, justo después de que el cargador del sistema (winload.exe) transfiere el control al kernel. En ese momento, el kernel ejecuta una comprobación de integridad entre la imagen de la HAL (hal.dll, o variantes como halmacpi.dll) y el propio kernel (ntoskrnl.exe), así como con las capacidades informadas por el firmware (BIOS o UEFI). Si se detecta que la HAL no coincide con el tipo de plataforma esperado o que no está presente en absoluto, el sistema se detiene con el código 0x79.

Según la documentación del WDK, el primer parámetro del volcado puede tomar los valores 0, 1 o 2:

  • 0: la revisión mayor de la HAL no coincide con la revisión mayor del kernel. Esto ocurre típicamente cuando se mezclan archivos de diferentes versiones de Windows (por ejemplo, una HAL de Windows 10 con un kernel de Windows 11).
  • 1: el tipo de plataforma informado por el firmware no es compatible con la HAL cargada. Por ejemplo, se intenta usar una HAL para sistema ACPI uniprocesador en una máquina que requiere soporte multiprocesador, o viceversa.
  • 2: la HAL no pudo detectar correctamente el hardware subyacente, o se está utilizando una HAL genérica en un entorno que necesita una específica (como una HAL para PCAT en hardware moderno).

El análisis con WinDbg no suele ser posible porque el error se produce tan temprano que no se genera un volcado de memoria completo. Sin embargo, el simple código de parada y el contexto del fallo (tras un cambio de hardware o una clonación de disco) orientan con claridad el diagnóstico. La causa nunca está en un fallo aleatorio del hardware, sino siempre en una configuración incorrecta de los archivos del sistema o del entorno de arranque.

Causas técnicas detalladas de 0x00000079

El mecanismo que desencadena el error 0x00000079 se encuentra en la función HalInitSystem o en las comprobaciones tempranas del administrador de arranque. El kernel y la HAL se compilan juntos como un par vinculado; ambos archivos contienen identificadores de plataforma y números de revisión que deben coincidir. El administrador de arranque carga primero ntoskrnl.exe y luego la HAL que esté especificada en los datos de configuración de arranque (BCD) o que sea detectada automáticamente. La secuencia de fallo se puede desglosar en tres escenarios técnicos.

1. Mezcla de archivos de sistema de distintas versiones o ediciones
Al clonar un disco o restaurar una imagen, es frecuente que la HAL original (hal.dll) no se copie correctamente o que el proceso de arranque cargue una HAL que no corresponde a la instalación. Esto puede ocurrir al migrar de un equipo con BIOS legacy a uno con UEFI, o de un procesador Intel a uno AMD, ya que la HAL contiene microcódigo específico de la plataforma.

2. Configuración manual de la HAL en el BCD incorrecta
Usuarios avanzados a veces fuerzan la carga de una HAL concreta mediante la entrada hal en el BCD. Si el archivo especificado no existe o no es compatible con el hardware real, el arranque falla con 0x79. Por ejemplo, establecer hal=halacpi.dll en un sistema que necesita halmacpi.dll provoca una discrepancia de tipo de plataforma.

3. Firmware de la placa base desactualizado que reporta capacidades erróneas
La HAL se selecciona automáticamente basándose en las tablas ACPI que proporciona la BIOS/UEFI. Si el firmware está corrupto o es muy antiguo, puede informar de un tipo de plataforma incorrecto, haciendo que Windows cargue una HAL inadecuada. Esto es especialmente relevante en equipos antiguos que reciben una actualización de BIOS defectuosa o en máquinas virtuales con configuraciones de virtualización incompletas.

Es importante destacar que el error 0x79 no está causado por controladores de dispositivo de terceros ni por software de aplicación; es un fallo en el núcleo mismo del sistema operativo, por lo que las soluciones se centran en restaurar la coherencia de los archivos fundamentales de Windows.

Posibles causas desencadenantes en el sistema

Las situaciones que llevan a este pantallazo azul están directamente ligadas a modificaciones sustanciales en el hardware o en la configuración del sistema de arranque.

1. Clonación de un disco duro a otro equipo con hardware diferente
Si se traslada un disco con Windows instalado a una nueva placa base, procesador o generación de chipset, la HAL que funcionaba en el equipo original puede no ser la adecuada para el nuevo. Esto es muy común en migraciones no planificadas sin una preparación previa como sysprep.

2. Actualización de la BIOS/UEFI que cambia el modo de funcionamiento
Una actualización del firmware puede habilitar o deshabilitar el soporte ACPI, modificar la gestión de los estados C del procesador o alterar el número de núcleos reportados. Si el sistema estaba configurado con una HAL específica para el hardware antiguo, tras la actualización esa HAL puede volverse incompatible.

3. Instalación de una versión incorrecta del HAL o del kernel manualmente
Intentar aplicar parches no oficiales, modificar archivos del sistema para forzar la compatibilidad con hardware no soportado o ejecutar scripts de optimización que reemplazan hal.dll suele terminar en este error.

4. Configuración incorrecta de la máquina virtual
Al migrar una máquina virtual entre hipervisores, o al cambiar el tipo de sistema operativo invitado en la configuración de VMware, Hyper-V o VirtualBox, el emulador puede presentar una plataforma hardware diferente. Si la máquina virtual se configuró originalmente para una HAL ACPI multiprocesador y se cambia a un perfil de hardware más simple, Windows falla en el arranque.

5. Corrupción del archivo hal.dll o de la entrada del BCD
Un corte de energía durante una actualización de Windows, un malware que dañe el sector de arranque o una desfragmentación agresiva pueden corromper el archivo hal.dll o las entradas BCD que apuntan a él. En estos casos, el sistema no encuentra una HAL válida y se detiene.

Síntomas y consecuencias de este error

El síntoma es inequívoco: el equipo se detiene al iniciar, mostrando la pantalla azul con el código 0x00000079 y el texto MISMATCHED_HAL. No llega a aparecer el logotipo animado de Windows. El sistema puede reiniciarse automáticamente o quedarse congelado, dependiendo de la configuración de recuperación. En ocasiones, el mensaje va acompañado de una indicación de que falta hal.dll, aunque el archivo esté presente pero sea el incorrecto.

La consecuencia directa es la imposibilidad de arrancar Windows. Dado que el fallo ocurre antes de que se cargue el entorno de recuperación, a menudo no se puede acceder a las herramientas de reparación automática a menos que se utilice un medio de instalación externo. Sin embargo, los datos del usuario no se ven afectados: el problema reside exclusivamente en los archivos de arranque. Si no se corrige, el sistema quedará inservible hasta que se restaure la compatibilidad de la HAL.

Soluciones recomendadas para resolver 0x00000079

A continuación se detallan 9 pasos de recuperación, ordenados de menor a mayor impacto. La mayoría deben ejecutarse desde un medio de instalación de Windows o desde el símbolo del sistema del entorno de recuperación.

1. Arrancar con la última configuración válida conocida (si está disponible)

En sistemas antiguos con BIOS legacy, al pulsar F8 durante el arranque aparece el menú de opciones avanzadas. Si tu equipo usa BIOS y no UEFI, selecciona La última configuración buena conocida (avanzada). Esto restaura la configuración del registro y los controladores que funcionaban en el último arranque exitoso, incluyendo la selección de la HAL. En equipos modernos con UEFI y arranque rápido, esta opción suele estar deshabilitada.

2. Usar el entorno de recuperación de Windows (WinRE) desde un USB de instalación

Como el sistema no arranca, crea un USB de instalación de Windows con la herramienta de creación de medios de Microsoft. Arranca desde él y, en la pantalla de instalación, selecciona Reparar el equipo > Solucionar problemas > Opciones avanzadas > Símbolo del sistema.

3. Reparar el sector de arranque y reconstruir el BCD

Una entrada BCD dañada puede apuntar a una HAL incorrecta.

  • En el Símbolo del sistema de WinRE, ejecuta:
    bootrec /fixmbr
    bootrec /fixboot
    bootrec /rebuildbcd
  • El último comando escaneará todas las instalaciones de Windows y las añadirá al menú de arranque. Reinicia y comprueba si el sistema inicia.

4. Verificar la integridad de los archivos del sistema con SFC y DISM desde WinRE

Es posible que hal.dll o ntoskrnl.exe estén corruptos.

  • En el Símbolo del sistema, identifica la letra de la unidad donde está instalado Windows (por ejemplo, D:). Puedes usar diskpart y luego list volume para ver las particiones.
  • Una vez identificada, ejecuta:
    sfc /scannow /offbootdir=D:\ /offwindir=D:\Windows
  • Luego ejecuta:
    DISM /Image:D:\Windows /Cleanup-Image /RestoreHealth
  • Reinicia. Esto restaurará las versiones originales de los archivos del sistema desde la caché local o desde Windows Update.

5. Revisar y eliminar la entrada ‘hal’ forzada en el BCD

Si se ha forzado manualmente una HAL, el sistema falla al no ser la correcta.

  • En el Símbolo del sistema de WinRE, ejecuta bcdedit /enum para listar las entradas del cargador de arranque.
  • Busca la entrada de Windows y comprueba si contiene hal seguido de un nombre de archivo (por ejemplo, hal=halacpi.dll).
  • Si existe, elimina esa entrada con:
    bcdedit /deletevalue {identificador} hal (sustituye {identificador} por el GUID de la entrada de Windows, que suele ser {default}).
  • Reinicia. Windows volverá a detectar automáticamente la HAL adecuada.

6. Restaurar el sistema a un punto anterior

Si la consola de recuperación detecta puntos de restauración, se puede revertir la configuración del sistema a un estado anterior sin afectar a los archivos personales.

  • En Opciones avanzadas, selecciona Restaurar sistema.
  • Elige un punto de restauración fechado antes de la aparición del error y sigue las instrucciones.

7. Reemplazar manualmente el archivo hal.dll desde una copia de seguridad o desde la imagen de instalación

Si se sospecha que hal.dll está corrupto o es de una versión incorrecta, se puede sustituir por el original.

  • Desde WinRE, navega en el Símbolo del sistema a D:\Windows\System32 (ajusta la letra). Renombra el archivo actual: ren hal.dll hal.old.
  • Copia el hal.dll correcto desde el USB de instalación o desde la carpeta WinSxS de la propia instalación de Windows (si se sabe cuál es la versión exacta). Este paso requiere conocer qué HAL necesita el sistema; si no se tiene certeza, es mejor recurrir a la reparación automática con DISM antes de manipular archivos manualmente.

8. Actualizar o restablecer la BIOS/UEFI a la configuración predeterminada

Una configuración incorrecta del firmware puede hacer que Windows seleccione la HAL errónea.

  • Reinicia y accede a la BIOS/UEFI (teclas habituales F2, Supr o F10).
  • Busca la opción Load Optimized Defaults o Restaurar valores predeterminados. Guarda los cambios y sal.
  • Si el problema persiste, verifica que el modo SATA esté en AHCI (no en RAID o IDE) y que el soporte ACPI esté habilitado. Desactiva el overclocking si lo hubiera.

9. Realizar una reinstalación de reparación (Reparación de inicio) o reinstalación limpia

Si ninguna solución funciona, el último recurso es reparar la instalación actual o reinstalar Windows.

  • Desde el entorno de recuperación, selecciona Reparación de inicio para que Windows intente corregir los archivos de arranque automáticamente.
  • Si falla, usa la opción Restablecer este PC conservando los archivos personales. Esto reinstalará Windows manteniendo tus datos pero eliminando aplicaciones y configuraciones.
  • Como paso final, una instalación limpia desde cero (formateando la partición del sistema) soluciona cualquier discrepancia de HAL, aunque requiere reinstalar programas y restaurar datos desde una copia de seguridad.

Conclusión y reflexiones finales

El error 0x00000079 MISMATCHED_HAL es un guardián silencioso que protege la estabilidad del sistema impidiendo que un kernel y una capa de abstracción de hardware incompatibles intenten trabajar juntos. Aunque su aparición puede resultar frustrante porque detiene el arranque por completo, su diagnóstico es casi inmediato si se tiene en cuenta el contexto: ¿se ha cambiado recientemente la placa base? ¿se ha restaurado una imagen de sistema de otro equipo? ¿se ha modificado la configuración del BCD?

Resolverlo consiste esencialmente en devolver al sistema a un estado en el que la HAL, el kernel y el hardware estén alineados. Las herramientas de recuperación de Windows, en particular el símbolo del sistema y el comando bcdedit, proporcionan todo lo necesario para deshacer configuraciones forzadas o reparar archivos dañados sin tocar los datos personales. Mantener una copia de seguridad de la configuración de arranque antes de realizar cambios importantes y, sobre todo, utilizar sysprep al migrar discos entre equipos, son prácticas que evitan este pantallazo en entornos de TI. La fiabilidad del ecosistema Windows se apoya en estas estrictas comprobaciones; entenderlas nos convierte en mejores administradores de nuestros sistemas.

Preguntas Frecuentes (FAQ)

¿Es posible arreglar el error 0x79 sin un disco de instalación de Windows?
Si el equipo tiene una partición de recuperación y el entorno WinRE es accesible (normalmente pulsando F11 o una combinación de teclas durante el arranque), sí. De lo contrario, necesitarás crear un USB de instalación con la herramienta de creación de medios de Microsoft desde otro equipo. Sin un medio externo, las opciones son muy limitadas porque el sistema no llega a arrancar.

¿Cambiar la RAM puede provocar este error?
No directamente. La RAM no influye en la detección de la HAL. Sin embargo, si al instalar nuevos módulos se resetea la BIOS y se pierden configuraciones como el soporte ACPI, podría haber una repercusión indirecta. Lo más habitual es que un cambio de RAM cause errores diferentes, relacionados con la memoria.

¿Puedo copiar el archivo hal.dll de otro equipo con el mismo Windows?
Sí, pero con precaución. Debes asegurarte de que ambos equipos tengan exactamente la misma versión y compilación de Windows, así como una plataforma hardware compatible (mismo fabricante de procesador, mismo tipo de firmware). Si el otro equipo usa una HAL distinta (por ejemplo, halmacpi.dll en lugar de halacpi.dll), el error persistirá. Es más seguro reconstruir el BCD y ejecutar DISM, que utiliza los archivos correctos de la propia instalación.

¿Este error puede aparecer de repente sin que haya cambiado nada?
Es muy raro. Si no ha habido cambios de hardware, actualizaciones de BIOS o manipulaciones del sistema, una aparición espontánea sugiere corrupción de archivos del sistema, posiblemente por un corte de energía mientras se escribía en el disco. En ese caso, los pasos de reparación del BCD y DISM suelen ser suficientes.

¿Qué significa que el error mencione «hal.dll is missing or corrupt»?
Aunque a veces el mensaje de error incluye esa frase, el código 0x79 es específico de discrepancia, no de ausencia. Si ves «hal.dll is missing», puede deberse a que el cargador no encuentra el archivo, pero el bug check 0x79 indica que se encontró pero no es válido. Revisa el BCD y asegúrate de que no haya una ruta forzada incorrecta, y repara el sistema con los comandos descritos.

¿Experimentas otros errores de Windows o necesitas ayuda con diagnóstico de pantalla azul? Consulta nuestra guía completa sobre códigos de error de Windows y soluciones de diagnóstico para resolver cualquier problema de sistema de manera segura y eficaz.