WER gebruiken
Vanaf Windows Vista biedt Windows standaard crash-, niet-respons- en kernelfoutrapportage zonder dat er wijzigingen in uw toepassing nodig zijn. Het rapport bevat indien nodig minidump- en heapdumpgegevens. Toepassingen gebruiken in plaats daarvan de WER-API om toepassingsspecifieke probleemrapporten naar Microsoft te verzenden.
Omdat Windows automatisch niet-verwerkte uitzonderingen rapporteert, moet de toepassing geen fatale uitzonderingen verwerken. Als het foutieve of niet-reagerende proces interactief is, geeft WER een gebruikersinterface weer die de gebruiker informeert over het probleem. Een toepassing wordt beschouwd als niet reageren als deze vijf seconden niet reageert op Windows-berichten terwijl de gebruiker probeert te communiceren met de toepassing.
Windows Probleemrapportagestroom voor crashes, niet-reageren en kernelfouten
Hieronder ziet u de stappen die optreden voor een toepassingscrash, niet-reactie of kernelfout.
- De probleemgebeurtenis doet zich voor.
- Het besturingssysteem roept WER aan.
- WER verzamelt de gegevens, bouwt een rapport en vraagt de gebruiker om toestemming (indien nodig).
- WER stuurt het rapport naar Microsoft (Watson Server) als de gebruiker toestemming heeft gegeven.
- Als de Watson-server aanvullende gegevens aanvraagt, verzamelt WER de gegevens en vraagt de gebruiker om toestemming (indien nodig).
- Als de toepassing is geregistreerd voor herstel en opnieuw opstarten, voert WER de geregistreerde callback-functies uit terwijl de gegevens worden gecomprimeerd en naar Microsoft worden verzonden (als de gebruiker toestemming heeft gegeven).
- Als er een reactie op het probleem beschikbaar is van Microsoft, wordt de gebruiker op de hoogte gesteld.
Toepassingen kunnen de volgende functies gebruiken om de inhoud van het rapport dat naar Microsoft wordt verzonden, aan te passen. De registratiefuncties laten WER weten dat de specifieke bestanden en geheugenblokken moeten worden opgenomen in het foutenrapport dat wordt gemaakt.
- WerRegisterFile
- WerRegisterMemoryBlock
- WerSetFlags
- WerUnregisterFile
- WerUnregisterMemoryBlock
- WerGetFlags
Windows Foutrapportagestroom voor algemene gebeurtenisrapportage
De volgende stappen laten zien hoe toepassingen een foutenrapport kunnen krijgen voor een niet-fatale foutvoorwaarde.
- De niet-fatale probleemsituatie doet zich voor.
- De toepassing herkent de gebeurtenis en gebruikt de volgende reeks functie-aanroepen om het rapport te genereren.
- Roep de functie WerReportCreate aan om het rapport te maken.
- Roep de WerReportSetParameter functie aan om de rapportparameters in te stellen.
- Roep de WerReportAddFile--functie aan om bestanden toe te voegen aan het rapport.
- Roep de WerReportAddDump--functie aan om een minidump toe te voegen aan het rapport (indien nodig).
- Roep de functie WerReportSubmit aan om het rapport te verzenden.
- Roep de WerReportCloseHandle aan om resources vrij te maken.
- Afhankelijk van de specifieke opties die worden gebruikt bij het aanroepen van de functies in stap 2, voltooit WER de foutrapportage. WER zorgt ervoor dat de rapportage wordt uitgevoerd in overeenstemming met het beleid dat door de gebruiker is ingesteld. Wer verzendt het rapport bijvoorbeeld naar Microsoft, plaatst het rapport in de wachtrij en toont de juiste gebruikersinterfaces aan de gebruiker.
Een toepassing uitsluiten van Windows Foutrapportage
Gebruik de functie WerAddExcludedApplication om uw toepassing uit te sluiten van Windows-foutenrapportage. Gebruik de werRemoveExcludedApplication functie om foutrapportage voor uw toepassing te herstellen.
Gegevens automatisch herstellen en een foutieve toepassing opnieuw starten
Een toepassing kan toepassingsherstel en opnieuw opstarten gebruiken om gegevens en statusgegevens op te slaan voordat de toepassing wordt afgesloten vanwege een niet-verwerkte uitzondering of wanneer de toepassing niet meer reageert. De toepassing wordt ook opnieuw opgestart, indien aangevraagd. Zie Application Recovery en Herstartvoor details.
Verouderde API
Een toepassing kan een fout melden door de functie ReportFault aan te roepen. U moet echter niet de ReportFault--functie gebruiken, tenzij u een zeer specifieke vereiste hebt dat het standaardgedrag van het besturingssysteem voor foutrapportage niet kan voldoen.
Als foutrapportage is ingeschakeld, geeft het systeem een dialoogvenster weer aan de gebruiker die aangeeft dat er een probleem is opgetreden en wordt gesloten. Als er een foutopsporingsprogramma is geconfigureerd in de HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug-sleutel, krijgt de gebruiker de mogelijkheid om het foutopsporingsprogramma te starten. De gebruiker krijgt ook de mogelijkheid om een rapport naar Microsoft te verzenden. Als de gebruiker het rapport verzendt, wordt in het systeem een ander dialoogvenster weergegeven met dank aan de gebruiker voor het rapport en een koppeling naar meer informatie.
Het systeem voor foutrapportage ondersteunt de volgende bewerkingsmodi.
Bewerkingsmodus | Beschrijving |
---|---|
Rapportage van gedeeld geheugen | Als de beveiligingscontext van de toepassing hetzelfde is als de beveiligingscontext van de aangemelde gebruiker, gebruikt het systeem voor foutrapportage een blok gedeeld geheugen voor communicatie. Deze modus kan niet worden gebruikt met de manifestrapportagemodus. |
Manifestrapportage | Als de beveiligingscontext van de toepassing niet hetzelfde is als de beveiligingscontext van de aangemelde gebruiker, gebruikt het systeem voor foutrapportage een bestand voor communicatie. Deze modus wordt ook gebruikt voor het melden van niet-reagerende toepassingen en kernelfouten. Deze modus kan niet worden gebruikt met de rapportagemodus voor gedeeld geheugen. |
Internetrapportage | Het systeem voor foutrapportage verzendt alle gegevens naar Microsoft via internet. Dit is de standaardbewerkingsmodus. Het kan niet worden gebruikt met de bedrijfsrapportagemodus. Deze modus wordt gebruikt wanneer er geen bedrijfsuploadpad is opgegeven door de beheerder. |
Bedrijfsrapportage | Het systeem voor foutrapportage verzendt alle gegevens naar een bestandsshare in plaats van deze rechtstreeks naar Microsoft te uploaden. Hierdoor kunnen IT-managers van het bedrijf gegevens controleren voordat ze naar Microsoft worden verzonden. Deze modus wordt gebruikt wanneer er een bedrijfsuploadpad is opgegeven door de beheerder. Het kan niet worden gebruikt met de internetrapportagemodus. |
Rapportage zonder gebruikersinterface | In het systeem voor foutrapportage worden geen dialoogvensters weergegeven voor de gebruiker. Hierdoor kunnen IT-managers van het bedrijf altijd foutenrapporten van hun werknemers verzamelen. Deze modus wordt gebruikt wanneer rapportage is ingeschakeld door de beheerder, maar de melding is uitgeschakeld. Deze kan alleen worden gebruikt met de bedrijfsrapportagemodus. |
Als u uw toepassing wilt uitsluiten van foutrapportage, gebruikt u de functie AddERExcludedApplication.