Partager via


Composants de l’architecture d’erreur matérielle Windows

Le diagramme suivant montre les principaux composants de l’architecture d’erreur matérielle Windows (WHEA).

diagramme illustrant les relations entre un pilote de changeur, des applications et services en mode utilisateur, des pilotes de stockage de masse et de port et un périphérique de changeur.

Pour chaque source d’erreur matérielle découverte par le système d’exploitation, il existe un gestionnaire d’erreurs matérielles de bas niveau (LLHEH) correspondant. Un LLHEH est le premier code de système d’exploitation qui s’exécute en réponse à une condition d’erreur matérielle. Un LLHEH peut être un gestionnaire d’interruptions, un gestionnaire d’exceptions, une routine d’interrogation ou une routine de rappel appelée par le microprogramme système. Chaque LLHEH est implémenté dans le module logiciel le plus approprié : pour les bus d’E/S, ils existent dans leurs pilotes de bus respectifs ; pour les gestionnaires d’interruption de plateforme, ils existent dans le noyau du système d’exploitation ou dans la couche d’abstraction matérielle (HAL).

Chaque LLHEH effectue les tâches suivantes :

  • Reconnaît l’erreur matérielle.

  • Capture les informations d’erreur disponibles relatives à l’erreur matérielle.

  • Signale la condition d’erreur matérielle au système d’exploitation.

En règle générale, les LLHEH interagissent directement avec le matériel et le microprogramme pour récupérer les informations d’erreur matérielle. LLHEHs compile toutes les informations relatives à une erreur matérielle dans un paquet d’erreur matérielle. Dans les situations où le microprogramme traite initialement une erreur matérielle, le LLHEH correspondant interagit avec le microprogramme pour récupérer le paquet d’erreur. Tous les LLHEH signalent les erreurs matérielles au noyau du système d’exploitation Windows en transmettant les données de paquet d’erreurs matérielles à une fonction de rapport d’erreurs courante.

Les LLHEH et le noyau Windows s’appuient tous deux sur les services du pilote d’erreur matérielle spécifique à la plateforme (PSHED) pour collecter des informations d’erreur spécifiques à la plateforme. Le PSHED fournit une abstraction des fonctionnalités de signalement des erreurs matérielles de la plateforme sous-jacente en masquant les détails des mécanismes de gestion des erreurs d’une plateforme du système d’exploitation et en exposant une interface cohérente au système d’exploitation Windows. Sur les plateformes qui impliquent une interface de microprogramme système avec les ressources de gestion des erreurs matérielles, le PSHED gère l’interfaçage avec le microprogramme. Cela permet aux principaux composants Windows d’accéder uniquement aux registres d’erreur status considérés comme architecturaux, tout en fournissant un mécanisme permettant d’obtenir des informations plus riches et plus détaillées sur les erreurs matérielles spécifiques à la plateforme.

Pour chaque architecture de processeur (x86, x64 et Itanium), Microsoft fournit un PSHED qui implémente un comportement de gestion des erreurs de base commun à cette architecture. Les fournisseurs de plateforme peuvent compléter la fonctionnalité PSHED par défaut en fournissant des plug-ins PSHED qui tirent parti des fonctionnalités spécifiques de la plateforme. Un plug-in PSHED est un pilote de périphérique Windows à usage spécial qui implémente une interface de rappel appelée par le PSHED. L’objectif d’un plug-in PSHED est d’augmenter ou de remplacer le comportement par défaut du PSHED fourni par Microsoft.

Un plug-in PSHED est destiné à être implémenté par les fournisseurs de plateforme en tant qu’interface logicielle aux fonctionnalités de récupération et de signalement des erreurs matérielles de la plateforme matérielle. Un plug-in PSHED peut s’interfacer avec le microprogramme de la plateforme à l’aide des interfaces ou mécanismes privés définis par le fournisseur de la plateforme. Cela permet au fournisseur de la plateforme de continuer à utiliser le microprogramme existant pour la gestion des erreurs matérielles. Avec le temps, Microsoft s’attend à ce que davantage de fonctionnalités de rapport et de récupération des erreurs matérielles soient standardisées. Par conséquent, le besoin de plug-ins PSHED pour la gestion et la création de rapports d’erreurs généraux diminuera de sorte que les plug-ins PSHED ne seront nécessaires que pour prendre en charge des fonctionnalités spécifiques au fournisseur qui fournissent une valeur supplémentaire au-delà de la fonctionnalité de gestion des erreurs matérielles standard.

Pour plus d’informations sur l’implémentation d’un plug-in PSHED, consultez Plug-ins de pilote d’erreur matérielle spécifique à la plateforme.

Lors de la notification par un LLHEH d’une condition d’erreur matérielle, Windows crée un enregistrement d’erreur dans un format standardisé qui décrit la condition d’erreur matérielle. Windows appelle ensuite le PSHED afin qu’il puisse ajouter des informations d’erreur matérielle supplémentaires à l’enregistrement d’erreur afin de mieux décrire la condition d’erreur matérielle. Si un plug-in PSHED est installé et est inscrit pour participer à la récupération des informations d’erreur, le PSHED appelle à son tour le plug-in PSHED afin qu’il puisse augmenter davantage les informations contenues dans l’enregistrement d’erreurs. Une fois que Windows a compilé toutes les informations sur les erreurs matérielles dans l’enregistrement d’erreur, il consigne les informations d’erreur dans le journal des événements système et avertit les applications en mode utilisateur en mettant en place un événement de suivi d’événements pour Windows (ETW).

Dans certaines conditions d’erreur matérielles, le système d’exploitation est obligé de redémarrer le système pour récupérer après l’erreur. Dans ce cas, Windows ne consigne pas les informations d’erreur dans le journal des événements système ni n’avertit les applications en mode utilisateur qu’après le redémarrage du système. Par conséquent, le système d’exploitation doit enregistrer l’enregistrement d’erreur dans une forme de stockage non volatile avant de redémarrer le système. Le PSHED fournit une interface par le biais de laquelle le système d’exploitation peut stocker et récupérer un enregistrement d’erreur afin que les informations d’erreur soient conservées pendant le redémarrage du système. Si un plug-in PSHED est installé et est inscrit pour participer à la persistance des enregistrements d’erreurs, le plug-in PSHED peut fournir une implémentation spécifique à la plateforme pour le stockage et la récupération des enregistrements d’erreurs. Lorsque le système est redémarré, le système d’exploitation récupère l’enregistrement d’erreur enregistré afin qu’il puisse être correctement journalisé dans le journal des événements système et que les applications en mode utilisateur puissent être averties.

Pour plus d’informations sur la façon dont WHEA traite les erreurs matérielles, consultez Traitement des erreurs.

Windows fournit également une API de gestion des erreurs matérielles afin que les applications de gestion des erreurs en mode utilisateur puissent définir et récupérer des informations sur la source des erreurs matérielles, configurer la gestion des erreurs pour une source d’erreurs particulière et injecter des erreurs matérielles dans la plateforme matérielle à des fins de test.

Pour plus d’informations sur l’implémentation d’une application de gestion WHEA, consultez Applications de gestion WHEA.