Solución de problemas avanzada del identificador de evento 41: "El sistema se ha reiniciado sin apagarse limpiamente primero"

Nota:

Usuarios particulares: este artículo está concebido para agentes de soporte y profesionales de TI. Si busca más información sobre los mensajes de error de pantalla azul, visite Solución de errores de pantalla azul.

La manera preferida de apagar Windows es seleccionar Iniciar y, a continuación, seleccionar una opción para apagar o apagar el equipo. Cuando se usa este método estándar, el sistema operativo cierra todos los archivos y notifica a los servicios y aplicaciones en ejecución para que puedan escribir los datos no guardados en el disco y vaciar las cachés activas.

Si el equipo se apaga inesperadamente, Windows registra el identificador de evento 41 la próxima vez que se inicie el equipo. El texto del evento es similar a la siguiente información:

Event ID: 41  
Description: The system has rebooted without cleanly shutting down first.

Este evento indica que alguna actividad inesperada impidió que Windows se apagara correctamente. Dicho apagado puede deberse a una interrupción de la fuente de alimentación o a un error de detención. Si es factible, Windows registra los códigos de error a medida que se cierra. Durante la fase del kernel del siguiente inicio de Windows, Windows comprueba estos códigos e incluye los códigos existentes en los datos de evento del identificador de evento 41.

EventData  
BugcheckCode 159  
BugcheckParameter1 0x3  
BugcheckParameter2 0xfffffa80029c5060  
BugcheckParameter3 0xfffff8000403d518  
BugcheckParameter4 0xfffffa800208c010  
SleepInProgress false  
PowerButtonTimestamp 0Converts to 0x9f (0x3, 0xfffffa80029c5060, 0xfffff8000403d518, 0xfffffa800208c010)  

Cómo usar el identificador de evento 41 al solucionar problemas de apagado o reinicio inesperados

Por sí mismo, es posible que el identificador de evento 41 no contenga información suficiente para definir explícitamente lo que ocurrió. Normalmente, también debe tener en cuenta lo que se estaba produciendo en el momento del apagado inesperado (por ejemplo, se produjo un error en la fuente de alimentación). Use la información de este artículo para identificar un enfoque de solución de problemas adecuado para sus circunstancias:

  • Escenario 1: El equipo se reinicia debido a un error de detención y el identificador de evento 41 contiene un código de detención de error (comprobación de errores).
  • Escenario 2: El equipo se reinicia porque ha presionado y mantenido presionado el botón de encendido.
  • Escenario 3: El equipo no responde o se reinicia aleatoriamente, y el identificador de evento 41 no se registra o la entrada id. de evento 41 muestra valores de código de error de cero.

Escenario 1: El equipo se reinicia debido a un error de detención y el identificador de evento 41 contiene un código de detención de error (comprobación de errores).

Cuando un equipo se apaga o se reinicia debido a un error de detención, Windows incluye los datos detener error en el identificador de evento 41 como parte de más datos de eventos. Esta información incluye el código de error Stop (también denominado código de comprobación de errores), como se muestra en el ejemplo siguiente:

EventData  
BugcheckCode 159  
BugcheckParameter1 0x3  
BugcheckParameter2 0xfffffa80029c5060  
BugcheckParameter3 0xfffff8000403d518  
BugcheckParameter4 0xfffffa800208c010  

Nota:

El identificador de evento 41 incluye el código de comprobación de errores en formato decimal. La mayoría de la documentación que describe los códigos de comprobación de errores hace referencia a los códigos como valores hexadecimales en lugar de valores decimales. Para convertir decimal en hexadecimal, siga estos pasos:

  1. Seleccione Inicio, escriba calc en el cuadro Búsqueda y, a continuación, seleccione Calculadora.
  2. En la ventana Calculadora , seleccione Ver>programador.
  3. En el lado izquierdo de la calculadora, compruebe que Dec está resaltado.
  4. Use el teclado para escribir el valor decimal del código de comprobación de errores.
  5. En el lado izquierdo de la calculadora, seleccione Hexadecimal.
    El valor que muestra la calculadora es ahora el código hexadecimal.

Al convertir un código de comprobación de errores en formato hexadecimal, compruebe que la designación "0x" va seguida de ocho dígitos (es decir, la parte del código después de la "x" incluye suficientes ceros para rellenar ocho dígitos). Por ejemplo, 0x9F normalmente se documenta como 0x0000009f y 0xA se documenta como 0x0000000A. En el caso de los datos de eventos de ejemplo de este artículo, "159" se convierte en 0x0000009f.

Después de identificar el valor hexadecimal, use las siguientes referencias para continuar con la solución de problemas:

Escenario 2: El equipo se reinicia porque ha presionado y mantenido presionado el botón de encendido.

Dado que este método de reinicio del equipo interfiere con la operación de apagado de Windows, se recomienda usar este método solo si no tiene ninguna alternativa. Por ejemplo, es posible que tenga que usar este enfoque si el equipo no responde. Al reiniciar el equipo presionando y manteniendo presionado el botón de encendido, el equipo registra un identificador de evento 41 que incluye un valor distinto de cero para la entrada PowerButtonTimestamp .

<EventData>
<Data Name="BugcheckCode">0</Data>
<Data Name="BugcheckParameter1">0x0</Data>
<Data Name="BugcheckParameter2">0x0</Data>
<Data Name="BugcheckParameter3">0x0</Data>
<Data Name="BugcheckParameter4">0x0</Data>
<Data Name="SleepInProgress">0</Data>
<Data Name="PowerButtonTimestamp">131728546170882432</Data>
<Data Name="BootAppStatus">0</Data>
</EventData>

Para obtener ayuda al solucionar problemas de un equipo que no responde, consulta Ayuda de Windows. Considere la posibilidad de buscar ayuda mediante palabras clave como "hang", "responding" o "blank screen".

Escenario 3: El equipo no responde o se reinicia aleatoriamente, y el identificador de evento 41 no se registra o la entrada id. de evento 41 o enumera valores de código de error de cero.

Este escenario incluye las siguientes circunstancias:

  • Apaga la alimentación de un equipo que no responde y, a continuación, reinicia el equipo.
    Para comprobar que un equipo no responde, presione la tecla de bloqueo Caps en el teclado. Si la luz de bloqueo Caps en el teclado no cambia al presionar la tecla de bloqueo Caps , es posible que el equipo no responda (también conocido como bloqueo duro).
  • El equipo se reinicia, pero no genera el identificador de evento 41.
  • El equipo se reinicia y genera el identificador de evento 41, pero los valores BugcheckCode y PowerButtonTimestamp son cero.

En tales casos, algo impide que Windows genere códigos de error o escriba códigos de error en el disco. Algo podría bloquear el acceso de escritura al disco (como en el caso de un equipo que no responde) o el equipo podría apagarse demasiado rápido para escribir los códigos de error o incluso detectar un error.

La información del identificador de evento 41 proporciona alguna indicación de dónde empezar a comprobar si hay problemas:

  • El identificador de evento 41 no se registra o el código de comprobación de errores es cero. Este comportamiento podría indicar un problema de fuente de alimentación. Si se interrumpe la alimentación de un equipo, el equipo podría apagarse sin generar un error Detención. Si genera un error Stop, es posible que no termine de escribir los códigos de error en el disco. La próxima vez que se inicie el equipo, es posible que no registre el identificador de evento 41. O bien, si lo hace, el código de comprobación de errores es cero. Las condiciones siguientes pueden ser la causa:

    • En el caso de un ordenador portátil, la batería se quitó o se drenó.
    • En el caso de un equipo de escritorio, el equipo se desenchufó o experimentó un corte de energía.
    • La fuente de alimentación está infrapotenciada o está defectuosa.
  • El valor de PowerButtonTimestamp es cero. Este comportamiento puede producirse si desconecta la alimentación de un equipo que no responde a la entrada. Las condiciones siguientes pueden ser la causa:

    • Un proceso de Windows bloqueó el acceso de escritura al disco y apagará el equipo presionando y manteniendo presionado el botón de encendido durante al menos cuatro segundos.
    • Desconectó la alimentación a un equipo que no responde.
  • Error al escribir el archivo de volcado de memoria y todos los valores son Cero. Por ejemplo:

    <EventData>
    <Data Name="BugcheckCode">0</Data>
    <Data Name="BugcheckParameter1">0x0</Data>
    <Data Name="BugcheckParameter2">0x0</Data>
    <Data Name="BugcheckParameter3">0x0</Data>
    <Data Name="BugcheckParameter4">0x0</Data>
    <Data Name="SleepInProgress">0</Data>
    <Data Name="PowerButtonTimestamp">0</Data>
    <Data Name="BootAppStatus">0</Data>
    </EventData>
    

    Sin embargo, hay un identificador de evento 46 registrado por volmgr: error de inicialización del volcado de memoria. Este evento puede producirse si el equipo se inició sin un archivo de volcado configurado. El archivo de volcado predeterminado es el archivo de página.

    Captura de pantalla del registro de eventos.

    Por lo tanto, si tiene un caso con un reinicio inesperado y el identificador de evento 41 tiene todo el valor como 0, compruebe si tiene un identificador de evento 46 por volmgr. Si es así, compruebe la configuración del archivo de página. Los reinicios inesperados podrían seguir ocurriendo debido a una comprobación de errores, pero el sistema no puede escribir el tipo de comprobación de errores en el identificador de evento 41 y tampoco puede generar un volcado de memoria. Consulte Id. de evento 46 al iniciar un equipo

Normalmente, los síntomas descritos en este escenario indican un problema de hardware. Para ayudar a aislar el problema, siga estos pasos:

  • Deshabilite el overclocking. Si el equipo tiene habilitado el overclocking, deshabilíelo. Compruebe que el problema se produce cuando el sistema se ejecuta a la velocidad correcta.
  • Compruebe la memoria. Use un comprobador de memoria para determinar el estado y la configuración de la memoria. Compruebe que todos los chips de memoria se ejecutan a la misma velocidad y que cada chip está configurado correctamente en el sistema.
  • Compruebe la fuente de alimentación. Compruebe que la fuente de alimentación tiene suficiente potencia para controlar adecuadamente los dispositivos instalados. Si agregó memoria, instaló un procesador más reciente, instaló más unidades o agregó dispositivos externos, estos dispositivos pueden requerir más energía de la que la fuente de alimentación actual puede proporcionar de forma coherente. Si el equipo registró el identificador de evento 41 porque se interrumpió la alimentación del equipo, considere la posibilidad de obtener una fuente de alimentación ininterrumpida (UPS), como una fuente de alimentación de reserva de batería.
  • Compruebe si hay sobrecalentamiento. Examine la temperatura interna del hardware y compruebe si hay componentes de sobrecalentamiento.
  • Si el equipo es una máquina física, podría haberse reiniciado mediante un software de recuperación automática del servidor (ASR) que detectó que la máquina no responde.
  • Si el sistema se ejecuta en una máquina virtual (VM) de Hyper-V y no forma parte de un entorno en clúster, la característica de latido de Hyper-V podría haber reiniciado el sistema. Si esta característica está habilitada y el host no detecta un latido de la máquina virtual (quizás porque no responde), Hyper-V reiniciará la máquina virtual.
  • Si el problema se produce en un entorno en clúster de Hyper-V, el problema podría estar relacionado con la opción Habilitar supervisión de latidos para la máquina virtual . Consulte Archivo de volcado de memoria dañado al intentar obtener un archivo de volcado de memoria completo de una máquina virtual que se ejecuta en un entorno de clúster.
  • Si el problema se produce con una máquina virtual de VMWare, podría estar relacionada con la característica de latido en VMWare o la máquina virtual forma parte de algún clúster de terceros.
  • Compruebe si hay algún evento sospechoso antes del tiempo de apagado (obtenido del identificador de evento 6008) en el registro de la aplicación y del sistema.

Si realiza estas comprobaciones y sigue sin poder aislar el problema, establezca el sistema en su configuración predeterminada y compruebe si el problema se sigue produciendo.

Nota:

Si ve un mensaje de error Detener que incluye un código de comprobación de errores, pero el identificador de evento 41 no incluye ese código, cambie el comportamiento de reinicio del equipo. Para ello, siga estos pasos:

  1. Haga clic con el botón derecho en Mi equipo y, a continuación, seleccione Propiedades>Configuración avanzada del> sistemaAvanzadas.
  2. En la sección Inicio y recuperación , seleccione Configuración.
  3. Desactive la casilla Reinicio automático .

Más información

Detalles sobre el identificador de evento 41

El error kernel power event ID 41 se produce cuando el equipo se apaga o se reinicia inesperadamente. Cuando se inicia un equipo basado en Windows, se realiza una comprobación para determinar si el equipo se ha apagado correctamente. Si no es así, se genera un mensaje de identificador de evento 41 de Kernel Power.

Se usa un identificador de evento 41 para informar de que ocurrió algo inesperado que impidió que Windows se apagara correctamente. Puede haber información insuficiente para definir explícitamente lo que ha ocurrido. Consulte Kernel Power Event ID 41 para obtener más información.

  • Nombre del registro: Sistema
  • Producto: Sistema operativo Windows
  • Identificador: 41
  • Origen: Microsoft-Windows-Kernel-Power
  • Nivel: Crítico
  • Versión: 6.1
  • Mensaje: El sistema se ha reiniciado sin apagarse limpiamente primero. Este error podría deberse a que el sistema dejó de responder, se bloqueó o perdió energía inesperadamente.

Nota:

La hora que se muestra en el archivo .evtx se ajusta a la hora del sistema. Compruebe la zona horaria del servidor.

  • Id. de evento 41: este evento indica que Windows se ha reiniciado sin un apagado completo.
  • Id. de evento 1074: este evento se registra cuando una aplicación es responsable del apagado o reinicio del sistema. También indica cuándo un usuario ha reiniciado o apagado el sistema mediante el menú Inicio o presionando Ctrl+Alt+Supr.
  • Id. de evento 6006: este evento indica que Windows se ha desactivado adecuadamente.
  • Id. de evento 6008: este evento indica un apagado incorrecto o sucio. Se registra cuando el cierre más reciente fue inesperado.

Justo antes de que el equipo se apague, shutdown.exe registrará el evento de apagado en el registro del sistema de Windows con un source=user32 y el identificador de evento 1074 junto con cualquier mensaje personalizado & código de motivo.

El registro de eventos es la única manera de indicar que un reinicio desencadenado desde shutdown.exe está pendiente. El evento también registra el nombre de usuario y la fecha y hora en que se emitió el shutdown comando.

Cuando se usa shutdown.exe para reiniciar un servidor, el proceso de apagado normalmente permitirá 30 segundos para asegurarse de que cada servicio en ejecución tenga tiempo de detención. Los servicios se cierran en orden alfabético. Detener los servicios manualmente en un orden específico con NET STOP o SC puede ser ligeramente más rápido.

Archivo de estado de arranque (desde windows internals 6th)

Windows usa un archivo de estado de arranque (%SystemRoot%\Bootstat.dat) para registrar el hecho de que ha progresado a través de varias fases del ciclo de vida del sistema, incluido el inicio y el apagado.

Esto permite que el Administrador de arranque, el cargador de Windows y la herramienta reparación de inicio detecten un apagado anómalo o un error al apagarse limpiamente, con el fin de ofrecer las opciones de recuperación del usuario y de arranque de diagnóstico, como el último modo correcto y seguro conocido. Este archivo binario contiene información a través de la cual el sistema informa del éxito de las siguientes fases del ciclo de vida del sistema:

  • Arranque (la definición de un arranque correcto es la misma que la que se usa para determinar el último estado correcto conocido, que se describió anteriormente)
  • Apagado
  • Reanudación de hibernación o suspensión

El archivo de estado de arranque también indica si se detectó un problema la última vez que el usuario intentó arrancar el sistema operativo y las opciones de recuperación mostradas, lo que indica que el usuario ha sido consciente del problema y ha tomado medidas. Las API de biblioteca en tiempo de ejecución (Rtl) de ntdll.dll contienen las interfaces privadas que Windows usa para leer y escribir en el archivo. Al igual que el BCD, los usuarios no pueden editarlo.

Acerca del apagado

Cuando se inicia un apagado, Windows envía un mensaje de WM_QUERYENDSESSION a todas las aplicaciones en ejecución que tienen un subproceso de interfaz de usuario (UI). Este mensaje pide a la aplicación que guarde los datos no guardados y que finalice correctamente. Si la aplicación no responde al mensaje dentro de un límite de tiempo determinado, Windows envía un mensaje de WM_ENDSESSION a la aplicación, que finaliza la aplicación inmediatamente.

Si todas las aplicaciones responden al mensaje de WM_QUERYENDSESSION y finalizan correctamente, Windows registra un evento de apagado limpio en el registro de eventos del sistema. Si alguna aplicación no responde al mensaje o finaliza de forma anómala, Windows registra un evento de apagado sucio en el registro de eventos del sistema.

Los apagados inesperados se deben principalmente a componentes fuera del sistema operativo.

Un apagado sucio es cuando un sistema informático se apaga sin pasar por el proceso de apagado adecuado. Esto puede ocurrir cuando la energía se corta repentinamente o cuando el equipo se ve obligado a apagarse manteniendo presionado el botón de encendido. Un apagado sucio puede causar pérdida de datos o daños y también puede provocar problemas de arranque.

El registro de recuento de apagados sucios es una clave del Registro de Windows que se usa para realizar un seguimiento del número de veces que se ha apagado un sistema informático sin pasar por el proceso de apagado adecuado. Esta clave puede ser útil al solucionar problemas de arranque para identificar si el sistema se ha apagado incorrectamente.

También puede borrar todos los valores (como DirtyShutdown, LastAliveStamp, TimeStampInterval) en la siguiente clave del Registro: Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Reliability. Esto puede ayudar a evitar que el Rastreador de eventos de apagado aparezca después de un apagado inesperado.