Comprobación de errores 0x109: CRITICAL_STRUCTURE_CORRUPTION
La comprobación de errores CRITICAL_STRUCTURE_CORRUPTION tiene un valor de 0x00000109. Esto indica que el kernel ha detectado daños críticos en el código de kernel o datos.
Importante
Este artículo va dirigido a programadores. Si es un cliente que ha recibido un código de error de pantalla azul mientras usa el equipo, consulte Solución de errores de pantalla azul.
Parámetros de CRITICAL_STRUCTURE_CORRUPTION
Parámetro | Descripción |
---|---|
1 |
Reserved |
2 |
Reserved |
3 |
Reserved |
4 |
Tipo de la región dañada. (Consulte la tabla más adelante en esta página). |
El valor del Parámetro 4 indica el tipo de región dañada.
Parámetro 4 | Tipo de región dañada, tipo de daños o tipo de acción realizada que causó daños |
---|---|
0x0 |
Región de datos genérica |
0x1 |
Modificación de función |
0x2 |
Tabla de distribución de interrupciones del procesador (IDT) |
0x3 |
Tabla de descriptores globales del procesador (GDT) |
0x4 |
Daño en la lista de procesos de tipo 1 |
0x5 |
Daño en la lista de procesos de tipo 2 |
0x6 |
Modificación de rutina de depuración |
0x7 |
Modificación crítica de MSR |
0x8 |
Tipo de objeto |
0x9 |
IVT de procesador |
0xA |
Modificación de una función de servicio del sistema |
0xB |
Región de datos de sesión genérica |
0xC |
Modificación de una función de sesión o .pdata |
0xD |
Modificación de una tabla de importación |
0xE |
Modificación de una tabla de importación de sesión |
0xF |
Modificación de la llamada de Ps Win32 |
0x10 |
Modificación de rutina del modificador de depuración |
0x11 |
Modificación del asignador IRP |
0x12 |
Modificación del distribuidor de llamadas del controlador |
0x13 |
Modificación del distribuidor de finalización de IRP |
0x14 |
Modificación del desasignador IRP |
0x15 |
Registro de control del procesador |
0x16 |
Modificación del registro de control de punto flotante crítico |
0 x 17 |
Modificación de APIC local |
0x18 |
Modificación de la llamada de notificación del kernel |
0x19 |
Modificación de la lista de módulos cargados |
0x1A |
Daño en la lista de procesos de tipo 3 |
0x1B |
Daño en la lista de procesos de tipo 4 |
0x1C |
Daños en el objeto de controlador |
0x1D |
Modificación del objeto de devolución de llamada ejecutiva |
0x1E |
Modificación del relleno de módulos |
0x1F |
Modificación de un proceso protegido |
0x20 |
Región de datos genérica |
0x21 |
Discrepancia de hash de página |
0x22 |
Discrepancia de hash de página de sesión |
0x23 |
Modificación del directorio de configuración de carga |
0x24 |
Modificación de la tabla de funciones invertidas |
0x25 |
Modificación de la configuración de sesión |
0x26 |
Registro de control de procesador extendido |
0x27 |
Daño en el grupo de tipo 1 |
0x28 |
Daño en el grupo de tipo 2 |
0x29 |
Daño en el grupo de tipo 3 |
0x101 |
Daño en el grupo general |
0x102 |
Modificación de win32k.sys |
Causa
Por lo general, hay tres causas diferentes para esta comprobación de errores:
Un controlador ha modificado accidentalmente o deliberadamente el código o los datos críticos del kernel. Microsoft Windows Server 2003 con Service Pack 1 (SP1) y versiones posteriores de Windows para equipos basados en x64 no permiten aplicar revisiones al kernel, excepto a través de revisiones activas autorizadas originadas por Microsoft.
Un desarrollador intentó establecer un punto de interrupción normal del kernel mediante un depurador de kernel que no estaba conectado cuando se inició el sistema. Los puntos de interrupción normales (bp) solo se pueden establecer si el depurador está asociado a la hora de inicio. Los puntos de interrupción del procesador (ba) se pueden establecer en cualquier momento.
Se produjo un daño en el hardware. Por ejemplo, el código del kernel o los datos podrían haberse almacenado en la memoria que produjo un error.
Solución
La extensión de depuración !analyze indica información sobre la comprobación de errores y puede resultar útil para determinar la causa principal.
Para empezar, examine el seguimiento de la pila mediante el comando k, kb, kc, kd, kp, kP, kv (Mostrar seguimiento de pila). Puede especificar el número de procesador para examinar las pilas de todos los procesadores.
También puede establecer un punto de interrupción en el código que conduce a este código de detención e intentar avanzar un solo paso en el código con errores.
Para obtener más información, consulte los siguientes temas:
Análisis de volcado de memoria mediante los depuradores de Windows (WinDbg)
Si no está equipado para usar el depurador de Windows para trabajar con este problema, puede usar algunas técnicas básicas de solución de problemas.
Compruebe el registro del sistema en el Visor de eventos para ver si hay mensajes de error adicionales que puedan ayudar a identificar el dispositivo o controlador que está causando este error.
Si se identifica un controlador en el mensaje de verificación de errores, deshabilítelo o consulte al fabricante para obtener actualizaciones del controlador.
Ejecute la herramienta de diagnóstico de memoria de Windows para probar la memoria. En el cuadro de búsqueda del panel de control, escriba Memoria y, a continuación, seleccione Diagnosticar los problemas de memoria del equipo. Una vez ejecutada la prueba, use el Visor de eventos para ver los resultados en el registro del sistema. Busque la entrada Resultados de MemoryDiagnostics para ver los resultados.
Puede intentar ejecutar los diagnósticos del hardware proporcionados por el fabricante del sistema.
Confirme que todo el hardware nuevo que se instale sea compatible con la versión instalada de Windows. Por ejemplo, puede obtener información sobre el hardware necesario en Cómo buscar las especificaciones del equipo y los requisitos del sistema para Windows 10.
Para obtener información adicional sobre la solución de problemas generales, consulte Análisis de los datos de la comprobación de errores de la pantalla azul.