Uso de WER

A partir de Windows Vista, Windows proporciona informes de errores de bloqueo, no respuesta y error del kernel de forma predeterminada sin necesidad de cambios en la aplicación. El informe incluirá información de minivolcado y volcado de montón si es necesario. En su lugar, las aplicaciones usan la API WER para enviar informes de problemas específicos de la aplicación a Microsoft.

Dado que Windows notifica automáticamente excepciones no controladas, la aplicación no debe controlar las excepciones graves. Si el proceso de error o no responde es interactivo, WER muestra una interfaz de usuario que informa al usuario del problema. Se considera que una aplicación no responde si no responde a Windows mensajes durante cinco segundos mientras el usuario intenta interactuar con la aplicación.

Informe de errores de Windows flujo de bloqueos, no respuestas y errores del kernel

A continuación se muestran los pasos que se producen para un bloqueo de aplicación, no respuesta o error del kernel.

  1. Se produce el evento de problema.
  2. El sistema operativo invoca WER.
  3. WER recopila los datos, crea un informe y solicita al usuario su consentimiento (si es necesario).
  4. WER envía el informe a Microsoft (Watson Server) si el usuario ha consentido.
  5. Si el servidor Watson solicita datos adicionales, WER recopila los datos y solicita al usuario su consentimiento (si es necesario).
  6. Si la aplicación se ha registrado para la recuperación y el reinicio, WER ejecuta las funciones de devolución de llamada registradas mientras los datos se comprimen y se envían a Microsoft (si el usuario ha dado su consentimiento).
  7. Si hay una respuesta al problema disponible en Microsoft, se notifica al usuario.

Las aplicaciones pueden usar las siguientes funciones para personalizar el contenido del informe que se envía a Microsoft. Las funciones de registro indican a WER que incluya los archivos y bloques de memoria específicos en el informe de errores que crea.

flujo de Informe de errores de Windows para informes de eventos genéricos

En los pasos siguientes se muestra cómo las aplicaciones pueden obtener un informe de errores para una condición de error no grave.

  1. Se produce el evento de problema no irrecuperable.
  2. La aplicación reconoce el evento y usa la siguiente secuencia de llamadas de función para generar el informe.
    1. Llame a la función WerReportCreate para crear el informe.
    2. Llame a la función WerReportSetParameter para establecer los parámetros de informe.
    3. Llame a la función WerReportAddFile para agregar archivos al informe.
    4. Llame a la función WerReportAddDump para agregar un minivolcado al informe (si es necesario).
    5. Llame a la función WerReportSubmit para enviar el informe.
    6. Llame a WerReportCloseHandle para liberar recursos.
  3. Dependiendo de las opciones específicas usadas al llamar a las funciones en el paso 2, WER finalizará el informe de errores. WER garantizará que los informes se realicen de acuerdo con las directivas establecidas por el usuario. Por ejemplo, WER enviará el informe a Microsoft, pondrá en cola el informe y mostrará las interfaces de usuario adecuadas al usuario.

Exclusión de una aplicación de Informe de errores de Windows

Para excluir la aplicación de Windows informe de errores, use la función WerAddExcludedApplication. Para restaurar los informes de errores de la aplicación, use la función WerRemoveExcludedApplication .

Recuperación automática de datos y reinicio de una aplicación con errores

Una aplicación puede usar recuperación y reinicio de la aplicación para guardar datos e información de estado antes de que la aplicación salga debido a una excepción no controlada o cuando la aplicación deje de responder. La aplicación también se reinicia, si se solicita. Para obtener más información, consulte Recuperación y reinicio de aplicaciones.

API heredada

Una aplicación puede notificar un error llamando a la función ReportFault . Sin embargo, no debe usar la función ReportFault a menos que tenga un requisito muy específico de que el comportamiento predeterminado del informe de errores del sistema operativo no pueda cumplir.

Si la notificación de errores está habilitada, el sistema muestra un cuadro de diálogo al usuario que indica que la aplicación ha encontrado un problema y se cerrará. Si hay un depurador configurado en la clave deHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug , el usuario tiene la opción de iniciar el depurador. El usuario también tiene la opción de enviar un informe a Microsoft. Si el usuario envía el informe, el sistema muestra otro cuadro de diálogo que agradece al usuario el informe y proporciona un vínculo para obtener más información.

El sistema de informes de errores admite los siguientes modos de operación.

Modo de operación Descripción
Informes de memoria compartida Si el contexto de seguridad de la aplicación es el mismo que el contexto de seguridad del usuario que ha iniciado sesión, el sistema de informes de errores usa un bloque de memoria compartida para la comunicación. Este modo no se puede usar con el modo de informes de manifiestos.
Informes de manifiestos Si el contexto de seguridad de la aplicación no es el mismo que el contexto de seguridad del usuario que ha iniciado sesión, el sistema de informes de errores usa un archivo para la comunicación. Este modo también se usa para notificar errores de kernel y aplicaciones que no responden. Este modo no se puede usar con el modo de informes de memoria compartida.
Informes de Internet El sistema de informes de errores envía todos los datos a Microsoft a través de Internet. Este es el modo de funcionamiento predeterminado. No se puede usar con el modo de informes corporativos. Este modo se usa cuando el administrador no especifica ninguna ruta de acceso de carga corporativa.
Informes corporativos El sistema de informes de errores envía todos los datos a un recurso compartido de archivos en lugar de cargarlos directamente en Microsoft. Esto permite a los administradores de TI corporativos revisar los datos antes de enviarlos a Microsoft. Este modo se usa cuando el administrador especifica una ruta de acceso de carga corporativa. No se puede usar con el modo de informes de Internet.
Informes sin encabezado El sistema de informes de errores no mostrará ningún cuadro de diálogo al usuario. Esto permite a los administradores de TI corporativos recopilar informes de errores de sus empleados en todo momento. Este modo se usa cuando el administrador habilita los informes, pero la notificación está deshabilitada. Solo se puede usar con el modo de informes corporativos.

Para excluir la aplicación de informes de errores, use la función AddERExcludedApplication .