Uso di WER
A partire da Windows Vista, Windows fornisce la segnalazione di errori di errore di arresto anomalo, non di risposta e kernel per impostazione predefinita senza richiedere modifiche all'applicazione. Il report includerà le informazioni relative al minidump e al dump dell'heap, se necessario. Le applicazioni usano invece l'API WER per inviare segnalazioni di problemi specifiche dell'applicazione a Microsoft.
Poiché Windows segnala automaticamente eccezioni non gestite, l'applicazione non deve gestire eccezioni irreversibili. Se il processo di errore o non risponde è interattivo, wer visualizza un'interfaccia utente che informa l'utente del problema. Un'applicazione viene considerata non risponde se non risponde ai messaggi di Windows per cinque secondi mentre l'utente sta tentando di interagire con l'applicazione.
Di seguito sono illustrati i passaggi che si verificano per un arresto anomalo dell'applicazione, una mancata risposta o un errore del kernel.
- L'evento di problema si verifica.
- Il sistema operativo richiama WER.
- WeR raccoglie i dati, compila un report e richiede all'utente il consenso (se necessario).
- WeR invia il report a Microsoft (Watson Server) se l'utente ha acconsentito.
- Se il server Watson richiede dati aggiuntivi, wer raccoglie i dati e richiede all'utente il consenso (se necessario).
- Se l'applicazione è stata registrata per il ripristino e il riavvio, wer esegue le funzioni di callback registrate mentre i dati vengono compressi e inviati a Microsoft (se l'utente ha acconsentito).
- Se una risposta al problema è disponibile da Microsoft, l'utente riceve una notifica.
Le applicazioni possono usare le funzioni seguenti per personalizzare il contenuto del report inviato a Microsoft. Le funzioni di registrazione indicano a WER di includere i file e i blocchi di memoria specifici nel report degli errori creato.
- WerRegisterFile
- WerRegisterMemoryBlock
- WerSetFlags
- WerUnregisterFile
- WerUnregisterMemoryBlock
- WerGetFlags
La procedura seguente illustra come le applicazioni possono ottenere una segnalazione errori per una condizione di errore non irreversibile.
- Si verifica l'evento di problema non irreversibile.
- L'applicazione riconosce l'evento e usa la sequenza di chiamate di funzione seguente per generare il report.
- Chiamare la funzione WerReportCreate per creare il report.
- Chiamare la funzione WerReportSetParameter per impostare i parametri del report.
- Chiamare la funzione WerReportAddFile per aggiungere file al report.
- Chiamare la funzione WerReportAddDump per aggiungere un minidump al report , se necessario.
- Chiamare la funzione WerReportSubmit per inviare il report.
- Chiamare WerReportCloseHandle per liberare risorse.
- A seconda delle opzioni specifiche usate quando si chiamano le funzioni nel passaggio 2, la segnalazione errori verrà completata. WeR garantisce che la creazione di report venga eseguita in base ai criteri impostati dall'utente. Ad esempio, wer invierà il report a Microsoft, accoderà il report e mostrerà le interfacce utente appropriate all'utente.
Per escludere l'applicazione dalla segnalazione errori Di Windows, usare la funzione WerAddExcludedApplication . Per ripristinare la segnalazione degli errori per l'applicazione, usare la funzione WerRemoveExcludedApplication .
Un'applicazione può usare Il ripristino e il riavvio dell'applicazione per salvare i dati e le informazioni sullo stato prima dell'uscita dall'applicazione a causa di un'eccezione non gestita o quando l'applicazione smette di rispondere. L'applicazione viene riavviata anche, se richiesto. Per informazioni dettagliate, vedere Ripristino e riavvio delle applicazioni.
Un'applicazione può segnalare un errore chiamando la funzione ReportFault . Tuttavia, non è consigliabile usare la funzione ReportFault a meno che non si disponga di un requisito molto specifico che il comportamento predefinito di segnalazione degli errori del sistema operativo non può soddisfare.
Se la segnalazione errori è abilitata, il sistema visualizza una finestra di dialogo all'utente che indica che l'applicazione ha riscontrato un problema e verrà chiusa. Se nella chiave diHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug è configurato un debugger, all'utente viene data la possibilità di avviare il debugger. L'utente ha anche la possibilità di inviare un report a Microsoft. Se l'utente invia il report, il sistema visualizza un'altra finestra di dialogo che ringrazia l'utente per il report e fornisce un collegamento a ulteriori informazioni.
Il sistema di segnalazione errori supporta le modalità operative seguenti.
Modalità operativa | Descrizione |
---|---|
Creazione di report di memoria condivisa | Se il contesto di sicurezza dell'applicazione corrisponde al contesto di sicurezza dell'utente connesso, il sistema di segnalazione errori usa un blocco di memoria condivisa per la comunicazione. Questa modalità non può essere utilizzata con la modalità di creazione di report del manifesto. |
Creazione di report sui manifesti | Se il contesto di sicurezza dell'applicazione non corrisponde al contesto di sicurezza dell'utente connesso, il sistema di segnalazione errori usa un file per la comunicazione. Questa modalità viene usata anche per segnalare errori kernel e applicazioni che non rispondono. Questa modalità non può essere usata con la modalità di creazione di report di memoria condivisa. |
Creazione di report su Internet | Il sistema di segnalazione errori invia tutti i dati a Microsoft tramite Internet. Questa è la modalità operativa predefinita. Non può essere usata con la modalità di creazione report aziendale. Questa modalità viene usata quando non è presente alcun percorso di caricamento aziendale specificato dall'amministratore. |
Creazione di report aziendali | Il sistema di segnalazione errori invia tutti i dati a una condivisione file anziché caricarli direttamente in Microsoft. In questo modo, i responsabili IT aziendali possono esaminare i dati prima che vengano inviati a Microsoft. Questa modalità viene usata quando è presente un percorso di caricamento aziendale specificato dall'amministratore. Non può essere utilizzato con la modalità di creazione report Internet. |
Creazione di report headless | Il sistema di segnalazione errori non visualizzerà alcuna finestra di dialogo all'utente. Ciò consente ai responsabili IT aziendali di raccogliere sempre segnalazioni di errori dai dipendenti. Questa modalità viene usata quando la creazione di report è abilitata dall'amministratore, ma la notifica è disabilitata. Può essere usato solo con la modalità di creazione report aziendale. |
Per escludere l'applicazione dalla segnalazione errori, usare la funzione AddERExcludedApplication .