Componentes de la arquitectura de errores de hardware de Windows
En el diagrama siguiente se muestran los componentes principales de la arquitectura de errores de hardware de Windows (WHEA).
Para cada origen de errores de hardware detectado por el sistema operativo, hay un controlador de errores de hardware (LLHEH) de bajo nivel correspondiente. Un LLHEH es el primer código del sistema operativo que se ejecuta en respuesta a una condición de error de hardware. Un LLHEH puede ser un controlador de interrupción, un controlador de excepciones, una rutina de sondeo o una rutina de devolución de llamada invocada por el firmware del sistema. Cada LLHEH se implementa en el módulo de software más adecuado: para los autobuses de E/S, existen en sus respectivos conductores de autobús; para los controladores de captura de plataforma, existen en el kernel del sistema operativo o en la capa de abstracción de hardware (HAL).
Cada LLHEH realiza las siguientes tareas:
Confirma el error de hardware.
Captura la información de error disponible relacionada con el error de hardware.
Notifica la condición de error de hardware al sistema operativo.
Normalmente, los LLHEH interactúan directamente con el hardware y el firmware para recuperar información de errores de hardware. LLHEHs compila toda la información relacionada con un error de hardware en un paquete de error de hardware. En situaciones en las que el firmware procesa inicialmente un error de hardware, el LLHEH correspondiente interactúa con el firmware para recuperar el paquete de error. Todos los LLHEH notifican errores de hardware al kernel del sistema operativo Windows pasando los datos del paquete de error de hardware a una función común de informes de errores.
Tanto los LLHEH como el kernel de Windows se basan en los servicios del controlador de error de hardware ( PSHED) específico de la plataforma para recopilar información de error específica de la plataforma. El PSHED proporciona una abstracción de las instalaciones de informes de errores de hardware de la plataforma subyacente ocultando los detalles de los mecanismos de control de errores de una plataforma del sistema operativo y exponiendo una interfaz coherente al sistema operativo Windows. En las plataformas que implican una interfaz de firmware del sistema a los recursos de control de errores de hardware, el PSHED controla la interacción con el firmware. Esto permite que los componentes principales de Windows accedan solo a los registros de estado de error que se consideran arquitectónicos, al mismo tiempo que proporcionan un mecanismo a través del cual se puede obtener información de error específica de la plataforma y más detallada.
Para cada arquitectura de procesador (x86, x64 e Itanium), Microsoft proporciona un PSHED que implementa un comportamiento básico de control de errores que es común a esa arquitectura. Los proveedores de plataformas pueden complementar la funcionalidad de PSHED predeterminada proporcionando complementos PSHED que aprovechan las funcionalidades específicas de la plataforma. Un complemento PSHED es un controlador de dispositivo Windows de propósito especial que implementa una interfaz de devolución de llamada a la que llama el PSHED. El propósito de un complemento PSHED es aumentar o invalidar el comportamiento predeterminado del PSHED proporcionado por Microsoft.
Un complemento PSHED está diseñado para ser implementado por los proveedores de plataformas como una interfaz de software para las funcionalidades de recuperación y informes de errores de hardware de la plataforma de hardware. Un complemento PSHED puede interactuar con el firmware de la plataforma mediante cualquier interfaz privada o mecanismos definidos por el proveedor de la plataforma. Esto permite al proveedor de la plataforma seguir usando el firmware existente para el control de errores de hardware. En el tiempo, Microsoft espera que se normalicen más funcionalidades de recuperación y generación de errores de hardware. Por lo tanto, la necesidad de complementos PSHED para el control general de errores e informes disminuirá de modo que los complementos PSHED solo sean necesarios para admitir características específicas del proveedor que proporcionen un valor adicional más allá de la funcionalidad estándar de control de errores de hardware.
Para obtener más información sobre cómo implementar un complemento PSHED, consulte Complementos de controladores de errores de hardware específicos de la plataforma.
Tras la notificación por una LLHEH de una condición de error de hardware, Windows crea un registro de error en un formato estandarizado que describe la condición de error de hardware. A continuación, Windows llama a PSHED para que pueda agregar cualquier información adicional de error de hardware al registro de error para describir mejor la condición de error de hardware. Si se instala un complemento PSHED y se registra para participar en la recuperación de información de error, PSHED llamará a en el complemento PSHED para que pueda aumentar aún más la información en el registro de errores. Una vez que Windows ha compilado toda la información de error de hardware en el registro de errores, registra la información de error en el registro de eventos del sistema y notifica a las aplicaciones en modo de usuario generando un evento de seguimiento de eventos para Windows (ETW).
En determinadas condiciones de error de hardware, el sistema operativo se ve obligado a reiniciar el sistema para recuperarse del error. En estas situaciones, Windows no registra la información de error en el registro de eventos del sistema ni notifica a las aplicaciones en modo de usuario hasta después de reiniciar el sistema. Por lo tanto, el sistema operativo debe guardar el registro de error en alguna forma de almacenamiento no volátil antes de reiniciar el sistema. El PSHED proporciona una interfaz a través de la cual el sistema operativo puede almacenar y recuperar un registro de error para que la información de error se conserve durante el reinicio del sistema. Si se instala un complemento PSHED y se registra para participar en la persistencia del registro de errores, el complemento PSHED puede proporcionar una implementación específica de la plataforma para almacenar y recuperar registros de errores. Cuando se reinicia el sistema, el sistema operativo recupera el registro de error guardado para que se pueda registrar correctamente en el registro de eventos del sistema y se pueda notificar a las aplicaciones en modo de usuario.
Para obtener más información sobre cómo WHEA procesa los errores de hardware, consulte Procesamiento de errores.
Windows también proporciona una API de administración de errores de hardware para que las aplicaciones de administración de errores en modo de usuario puedan establecer y recuperar información de origen de errores de hardware, configurar el control de errores para un origen de error determinado e insertar errores de hardware en la plataforma de hardware con fines de prueba.
Para obtener más información sobre cómo implementar una aplicación de administración de WHEA, consulte Aplicaciones de administración de WHEA.