Nomi e descrizioni © Microsoft Corporation, ricavati dai file di intestazione del Windows SDK e dalla documentazione di Microsoft Learn, pubblicata con licenza CC BY 4.0. Le descrizioni vengono mostrate nella tua lingua quando Microsoft le ha tradotte.Codici di errore di sistema su Microsoft Learn
Errori frequenti
Windows Update, installazioni e file
Programmi che non si aprono o si chiudono
Schermate blu (bug check)
Come funziona
Windows segnala gli errori con numeri di quattro famiglie diverse. I codici Win32, come 5 o 1603, sono quelli restituiti da GetLastError. Gli HRESULT, come 0x80070005, sono quelli di COM, Windows Update e dei programmi di installazione. Gli NTSTATUS, come 0xC0000005, provengono dal kernel e compaiono quando un programma si chiude. I bug check, come 0xD1, sono quelli delle schermate blu. Lo strumento cerca in tutte e quattro le famiglie contemporaneamente, con i nomi e i testi che Microsoft pubblica nel Windows SDK.
Molti HRESULT contengono al loro interno un codice Win32 o un NTSTATUS. Quando il valore ha FACILITY_WIN32, come 0x80070005, lo strumento mostra anche il codice Win32 contenuto e la sua descrizione, che è quella che spiega davvero l'errore. Inoltre separa i bit del valore: la gravità, la facility che indica quale componente lo ha generato e il codice all'interno di quella facility.
Esempi
0x80070005FACILITY_WIN32 (7) · 5 → ERROR_ACCESS_DENIEDUn HRESULT che inizia con 0x8007 racchiude un codice Win32 nelle ultime quattro cifre: 0x0005 è il 5, accesso negato.-10737418190xC0000005 · STATUS_ACCESS_VIOLATIONIl Visualizzatore eventi e i codici di uscita dei processi mostrano spesso il valore come decimale con segno. È lo stesso NTSTATUS di una violazione di accesso.16030x80070643 · ERROR_INSTALL_FAILUREWindows Installer termina con 1603 quando un'installazione fallisce e Windows Update segnala lo stesso errore come HRESULT 0x80070643.Casi d'uso
- Capire un errore di Windows Update, del Microsoft Store o di un programma di installazione prima di cercare la soluzione.
- Tradurre il codice di uscita di un processo o il valore mostrato dal Visualizzatore eventi nel nome della costante.
- Identificare il bug check di una schermata blu a partire dal codice di arresto.
- Trovare il valore di una costante come ERROR_ACCESS_DENIED o E_INVALIDARG mentre si programma con l'API di Windows.
- Vedere il testo originale in inglese di un errore mostrato in forma tradotta, per cercarlo nei forum e nella documentazione.
Domande frequenti
Perché lo stesso numero compare come due errori diversi?
Ogni famiglia numera i suoi codici separatamente. 0x7B è l'errore Win32 123, nome di file non corretto, ed è anche il bug check INACCESSIBLE_BOOT_DEVICE di una schermata blu. Il contesto indica quale dei due è: se proviene da una schermata blu è il bug check; se lo ha restituito un programma o un comando, il codice Win32.
Come si converte un codice Win32 in HRESULT?
Con la macro HRESULT_FROM_WIN32: si prende il codice in esadecimale e gli si antepone 0x8007, che imposta a 1 il bit di errore e a 7 la facility WIN32. Il 5 diventa 0x80070005 e il 1603, che è 0x643, diventa 0x80070643. Per tornare indietro si prendono le ultime quattro cifre.
Perché compare un numero negativo?
Gli HRESULT e gli NTSTATUS di errore hanno il bit più alto impostato a 1, quindi mostrati come intero con segno danno un numero negativo. -2147024891 è 0x80070005 e -1073741819 è 0xC0000005. Lo strumento accetta entrambe le forme.
Perché alcune descrizioni sono in inglese?
Le descrizioni tradotte sono quelle che Microsoft pubblica su Microsoft Learn per i codici Win32. I testi degli HRESULT, degli NTSTATUS e dei codici Win32 che Learn non ha tradotto nella tua lingua vengono mostrati in inglese, così come compaiono nel Windows SDK.
Che cosa faccio se il codice non compare?
I programmi possono definire codici propri, soprattutto quelli con il bit C impostato a 1 o con una facility che non è di Windows, e questi non sono presenti nell'SDK. In tal caso conviene guardare la facility mostrata dallo strumento per sapere quale componente ha generato l'errore e cercare il codice nella documentazione di quel prodotto.