Condividi tramite


Uso di WER

A partire da Windows Vista, Windows offre la segnalazione di errori di arresto anomalo, non risposta e guasto del kernel per impostazione predefinita senza richiedere modifiche all'applicazione. Il rapporto includerà le informazioni di minidump e heap dump, 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 difettoso o non rispondente è 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.

Flusso di segnalazione errori Windows per crash, mancata risposta e errori del kernel

Di seguito sono illustrati i passaggi che si verificano per un arresto anomalo dell'applicazione, non risposta o errore del kernel.

  1. Si verifica l'evento di problema.
  2. Il sistema operativo invoca WER.
  3. WeR raccoglie i dati, compila un report e richiede all'utente il consenso (se necessario).
  4. WeR invia il report a Microsoft (Watson Server) se l'utente ha acconsentito.
  5. Se il server Watson richiede dati aggiuntivi, wer raccoglie i dati e richiede all'utente il consenso (se necessario).
  6. 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).
  7. 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.

Flusso di segnalazione errori Windows per la segnalazione di eventi generici

La procedura seguente illustra come le applicazioni possono ottenere una segnalazione errori per una condizione di errore non irreversibile.

  1. Si verifica l'evento di problema non fatale.
  2. L'applicazione riconosce l'evento e usa la sequenza di chiamate di funzione seguente per generare il report.
    1. Chiamare la funzione WerReportCreate per creare il report.
    2. Chiamare la funzionewerReportSetParameterper impostare i parametri del report.
    3. Chiamare la funzionediWerReportAddFile per aggiungere file al report.
    4. Chiamare la funzione WerReportAddDump per aggiungere un minidump al report (se necessario).
    5. Chiamare la funzione WerReportSubmit per inviare il report.
    6. Chiamate il WerReportCloseHandle per liberare risorse.
  3. A seconda delle opzioni specifiche usate quando si chiamano le funzioni nel passaggio 2, si concluderà la segnalazione degli errori. 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.

Esclusione di un'applicazione da Segnalazione errori Windows

Per escludere l'applicazione dalla segnalazione errori di Windows, usare la funzione WerAddExcludedApplication. Per ripristinare la segnalazione degli errori per l'applicazione, utilizzare la funzione WerRemoveExcludedApplication.

Ripristino automatico dei dati e riavvio di un'applicazione con errori

Un'applicazione può usare ripristino e riavvio dell'applicazione per salvare i dati e le informazioni sullo stato prima che l'applicazione venga chiusa a causa di un'eccezione non gestita o quando l'applicazione smette di rispondere. Anche l'applicazione viene riavviata, se richiesto. Per informazioni dettagliate, vedere Ripristino e riavvio dell'applicazione.

Legacy API

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 di HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug è configurato un debugger, all'utente viene assegnata l'opzione per 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 ad altre informazioni.

Il sistema di segnalazione errori supporta le modalità operative seguenti.

Modalità operativa Descrizione
Creazione di report sulla 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 usata con la modalità di reporting manifest.
Reportistica del manifest 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 reporting di memoria condivisa.
Reportistica via Internet Il sistema di segnalazione errori invia tutti i dati a Microsoft tramite Internet. Questa è la modalità predefinita dell'operazione. Non può essere usato con la modalità di reportistica aziendale. Questa modalità viene usata quando non è specificato alcun percorso di caricamento aziendale 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 utilizzata con la modalità di reportistica via Internet.
Segnalazione senza interfaccia grafica Il sistema di segnalazione errori non visualizzerà alcuna finestra di dialogo per l'utente. In questo modo, i responsabili IT aziendali possono raccogliere report sugli errori dai dipendenti in qualsiasi momento. 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 di report aziendali.

Per escludere l'applicazione dalla segnalazione errori, usare la funzioneAddERExcludedApplication.