Windows-foutcodes
Zoek op wat een Windows-foutcode betekent: de Win32-codes van GetLastError, HRESULT's zoals 0x80070005, NTSTATUS-codes zoals 0xC0000005 en codes van blauwe schermen. Je kunt de waarde hexadecimaal of decimaal invoeren, of de symbolische naam of een deel van het bericht. De HRESULT wordt opgesplitst in zijn velden.
Voorbeelden:

Namen en beschrijvingen © Microsoft Corporation, overgenomen uit de headerbestanden van de Windows SDK en uit de documentatie van Microsoft Learn, die wordt gepubliceerd onder de licentie CC BY 4.0. De beschrijvingen worden in jouw taal weergegeven wanneer Microsoft ze heeft vertaald.Systeemfoutcodes op Microsoft Learn

Veelvoorkomende fouten

Windows Update, installaties en bestanden

Programma's die niet openen of afsluiten

Blauwe schermen (bug checks)

Hoe het werkt

Windows meldt fouten met getallen uit vier verschillende families. Win32-codes, zoals 5 of 1603, zijn die welke GetLastError teruggeeft. HRESULT's, zoals 0x80070005, zijn die van COM, Windows Update en installatieprogramma's. NTSTATUS-codes, zoals 0xC0000005, komen van de kernel en verschijnen wanneer een programma wordt afgesloten. Bug checks, zoals 0xD1, zijn die van blauwe schermen. Het hulpprogramma zoekt tegelijk in alle vier de families, met de namen en teksten die Microsoft publiceert in de Windows SDK.

Veel HRESULT's bevatten een Win32-code of een NTSTATUS. Als de waarde FACILITY_WIN32 heeft, zoals 0x80070005, toont het hulpprogramma ook de Win32-code die erin zit en de beschrijving ervan, die de fout daadwerkelijk verklaart. Ook splitst het de bits van de waarde op: de ernst, de facility die aangeeft welk onderdeel de fout heeft veroorzaakt en de code binnen die facility.

Voorbeelden

0x80070005FACILITY_WIN32 (7) · 5 → ERROR_ACCESS_DENIEDEen HRESULT die met 0x8007 begint, bevat in de laatste vier cijfers een Win32-code: 0x0005 is de 5, toegang geweigerd.
-10737418190xC0000005 · STATUS_ACCESS_VIOLATIONLogboeken en de afsluitcodes van processen tonen de waarde vaak als decimaal getal met teken. Het is dezelfde NTSTATUS van een toegangsschending.
16030x80070643 · ERROR_INSTALL_FAILUREWindows Installer eindigt met 1603 wanneer een installatie mislukt, en Windows Update meldt dezelfde fout als de HRESULT 0x80070643.

Gebruiksscenario's

  • Een fout van Windows Update, de Microsoft Store of een installatieprogramma begrijpen voordat je de oplossing zoekt.
  • De afsluitcode van een proces of de waarde uit Logboeken vertalen naar de naam van de constante.
  • De bug check van een blauw scherm identificeren aan de hand van de stopcode.
  • De waarde van een constante zoals ERROR_ACCESS_DENIED of E_INVALIDARG vinden terwijl je programmeert met de Windows-API.
  • De oorspronkelijke Engelse tekst zien van een fout die vertaald wordt weergegeven, om ernaar te zoeken op forums en in de documentatie.

Veelgestelde vragen

Waarom verschijnt hetzelfde getal als twee verschillende fouten?

Elke familie nummert haar codes apart. 0x7B is de Win32-fout 123, onjuiste bestandsnaam, en ook de bug check INACCESSIBLE_BOOT_DEVICE van een blauw scherm. De context geeft aan welke het is: als de code van een blauw scherm komt, is het de bug check; als een programma of een opdracht hem teruggaf, de Win32-code.

Hoe zet je een Win32-code om in een HRESULT?

Met de macro HRESULT_FROM_WIN32: je neemt de code hexadecimaal en zet er 0x8007 voor, waardoor het foutbit op 1 en de facility WIN32 op 7 komt. De 5 wordt 0x80070005 en de 1603, dat is 0x643, wordt 0x80070643. Om terug te gaan neem je de laatste vier cijfers.

Waarom verschijnt er een negatief getal?

Bij HRESULT's en NTSTATUS-codes voor fouten staat het hoogste bit op 1, dus als geheel getal met teken geven ze een negatief getal. -2147024891 is 0x80070005 en -1073741819 is 0xC0000005. Het hulpprogramma accepteert beide vormen.

Waarom zijn sommige beschrijvingen in het Engels?

De vertaalde beschrijvingen zijn die welke Microsoft op Microsoft Learn publiceert voor de Win32-codes. De teksten van de HRESULT's, de NTSTATUS-codes en de Win32-codes die Learn niet naar jouw taal heeft vertaald, worden in het Engels weergegeven, zoals ze in de Windows SDK staan.

Wat moet ik doen als de code niet verschijnt?

Programma's kunnen eigen codes definiëren, vooral codes waarbij bit C op 1 staat of met een facility die niet van Windows is, en die staan niet in de SDK. Kijk dan naar de facility die het hulpprogramma toont om te weten welk onderdeel de fout heeft veroorzaakt, en zoek de code op in de documentatie van dat product.