Uso del ripristino e riavvio dell'applicazione

Un'applicazione può usare Application Recovery e Restart (ARR) 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.

Quando si esegue la registrazione per il ripristino o il riavvio, le informazioni di registrazione verranno aggiunte al processo. Segnalazione errori Windows (WER) usa le informazioni di registrazione per chiamare il callback di ripristino e riavviare l'applicazione. Ad esempio, se si esegue la registrazione per il ripristino e l'applicazione rileva un'eccezione non gestita, WER visualizza una finestra di dialogo con l'utente che consente all'utente di controllare una soluzione online, chiudere il programma o eseguire il debug del programma. Se l'utente sceglie di verificare la presenza di una soluzione o chiudere il programma, il callback registrato chiama il callback registrato e offre all'applicazione la possibilità di salvare i dati e le informazioni sullo stato. Al termine del ripristino, l'applicazione viene terminata.

Se si esegue la registrazione per il riavvio e l'applicazione rileva un'eccezione non gestita, WER visualizza la stessa finestra di dialogo per l'utente, ma consente di riavviare il programma anziché chiudere il programma. Se si registra sia per il ripristino che per il riavvio, il ripristino si verifica prima; l'applicazione viene quindi terminata e riavviata.

Un'applicazione non risponde viene gestita in modo analogo. Un'applicazione viene considerata non rispondente se non risponde ai messaggi di Windows per cinque secondi e l'utente tenta di interagire con l'applicazione; l'utente visualizzerà (Non risponde) nella barra del titolo. WER viene attivato quando l'utente fa clic sul pulsante di chiusura del sistema.

È necessario registrarsi per il ripristino o il riavvio o rimuovere la registrazione, prima che l'applicazione diventi non risponde o rileva un'eccezione non gestita. Tuttavia, nel callback di ripristino è possibile modificare la riga di comando di riavvio.

Per informazioni dettagliate sulla registrazione per il ripristino o il riavvio, vedere gli argomenti seguenti:

Per esempi che implementano le funzionalità di ripristino e riavvio, vedere gli esempi AppRecovery e AppRestart in Windows SDK presenti nella cartella WinBase\WindowsErrorReporting.