Condividi tramite


Componenti dell'architettura degli errori hardware di Windows

Il diagramma seguente illustra i componenti principali dell'architettura degli errori hardware di Windows (WHEA).

diagramma che illustra le relazioni tra un driver del cambio, applicazioni e servizi in modalità utente, driver di archiviazione di massa e porte e un dispositivo di modifica.

Per ogni origine di errore hardware individuata dal sistema operativo, è presente un gestore di errori hardware di basso livello (LLHEH). LLHEH è il primo codice del sistema operativo eseguito in risposta a una condizione di errore hardware. Un LLHEH può essere un gestore di interrupt, un gestore di eccezioni, una routine di polling o una routine di callback richiamata dal firmware di sistema. Ogni LLHEH viene implementato nel modulo software più appropriato: per gli autobus di I/O, essi esistono nei rispettivi conducenti di autobus; per i gestori trap della piattaforma, sono presenti nel kernel del sistema operativo o nel livello di astrazione hardware (HAL).

Ogni LLHEH esegue le attività seguenti:

  • Riconosce l'errore hardware.

  • Acquisisce le informazioni sugli errori disponibili correlate all'errore hardware.

  • Segnala la condizione di errore hardware al sistema operativo.

In genere, gli LLHEH interagiscono direttamente con l'hardware e il firmware per recuperare le informazioni sugli errori hardware. LLHEHs compila tutte le informazioni correlate a un errore hardware in un pacchetto di errore hardware. Nelle situazioni in cui il firmware elabora inizialmente un errore hardware, il LLHEH corrispondente interagisce con il firmware per recuperare il pacchetto di errore. Tutti gli LLHEH segnalano gli errori hardware al kernel del sistema operativo Windows passando i dati del pacchetto di errore hardware a una funzione di segnalazione errori comune.

Sia LLHEHs che il kernel Windows disegnano sui servizi del driver di errore hardware specifico della piattaforma (PSHED) per raccogliere informazioni sugli errori specifiche della piattaforma. PSHED fornisce un'astrazione delle funzionalità di segnalazione degli errori hardware della piattaforma sottostante nascondendo i dettagli dei meccanismi di gestione degli errori di una piattaforma dal sistema operativo ed esponendo un'interfaccia coerente al sistema operativo Windows. Nelle piattaforme che coinvolgono un'interfaccia del firmware di sistema per le risorse di gestione degli errori hardware, PSHED gestisce l'interazione con il firmware. Ciò consente ai componenti principali di Windows di accedere solo ai registri di stato degli errori considerati architetturali, fornendo anche un meccanismo attraverso il quale è possibile ottenere informazioni più dettagliate sugli errori hardware specifiche della piattaforma.

Per ogni architettura del processore (x86, x64 e Itanium), Microsoft fornisce un PSHED che implementa il comportamento di gestione degli errori di base comune a tale architettura. I fornitori di piattaforme possono integrare la funzionalità PSHED predefinita fornendo plug-in PSHED che sfruttano le funzionalità specifiche della piattaforma. Un plug-in PSHED è un driver di dispositivo Windows speciale che implementa un'interfaccia di callback chiamata dal PSHED. Lo scopo di un plug-in PSHED è quello di aumentare o sostituire il comportamento predefinito del PSHED fornito da Microsoft.

Un plug-in PSHED è progettato per essere implementato dai fornitori della piattaforma come interfaccia software per le funzionalità di segnalazione degli errori hardware e ripristino della piattaforma hardware. Un plug-in PSHED può interfacciarsi con il firmware della piattaforma usando qualsiasi interfaccia privata o meccanismi definiti dal fornitore della piattaforma. Ciò consente al fornitore della piattaforma di continuare a usare il firmware esistente per la gestione degli errori hardware. Nel tempo, Microsoft prevede che saranno standardizzate più funzionalità di segnalazione degli errori hardware e ripristino. Pertanto, la necessità di plug-in PSHED per la gestione generale degli errori e la segnalazione diminuiranno in modo che i plug-in PSHED saranno necessari solo per supportare funzionalità specifiche del fornitore che forniscono valore aggiuntivo oltre la funzionalità di gestione degli errori hardware standard.

Per altre informazioni su come implementare un plug-in PSHED, vedere Plug-in del driver di errore hardware specifico della piattaforma.

Dopo la notifica da parte di un LLHEH di una condizione di errore hardware, Windows crea un record di errore in un formato standardizzato che descrive la condizione di errore hardware. Windows chiama quindi PSHED in modo che possa aggiungere eventuali informazioni aggiuntive sull'errore hardware al record degli errori per descrivere meglio la condizione di errore hardware. Se è installato un plug-in PSHED e viene registrato per partecipare al recupero delle informazioni sugli errori, pshed chiamerà a sua volta il plug-in PSHED in modo che possa aumentare ulteriormente le informazioni nel record di errore. Dopo che Windows ha compilato tutte le informazioni sull'errore hardware nel record degli errori, registra le informazioni sull'errore nel registro eventi di sistema e notifica alle applicazioni in modalità utente generando un evento ETW (Event Tracing for Windows).

In determinate condizioni di errore hardware, il sistema operativo viene costretto a riavviare il sistema per il ripristino dall'errore. In queste situazioni, Windows non registra le informazioni sull'errore nel registro eventi di sistema o invia una notifica alle applicazioni in modalità utente fino al riavvio del sistema. Pertanto, il sistema operativo deve salvare il record di errore in una forma di archiviazione non volatile prima di riavviare il sistema. PSHED fornisce un'interfaccia tramite cui il sistema operativo può archiviare e recuperare un record di errore in modo che le informazioni sull'errore vengano mantenute durante il riavvio del sistema. Se è installato un plug-in PSHED e viene registrato per partecipare alla persistenza dei record di errore, il plug-in PSHED può fornire un'implementazione specifica della piattaforma per l'archiviazione e il recupero dei record di errore. Quando il sistema viene riavviato, il sistema operativo recupera il record di errore salvato in modo che possa essere registrato correttamente nel registro eventi di sistema e nelle applicazioni in modalità utente.

Per altre informazioni su come WHEA elabora gli errori hardware, vedere Elaborazione degli errori.

Windows fornisce anche un'API di gestione degli errori hardware in modo che le applicazioni di gestione degli errori in modalità utente possano impostare e recuperare le informazioni sull'origine degli errori hardware, configurare la gestione degli errori per una determinata origine degli errori e inserire errori hardware nella piattaforma hardware a scopo di test.

Per altre informazioni su come implementare un'applicazione di gestione WHEA, vedere Applicazioni di gestione WHEA.