Funzione RegisterApplicationRestart (winbase.h)

Registra l'istanza attiva di un'applicazione per il riavvio.

Sintassi

HRESULT RegisterApplicationRestart(
  [in, optional] PCWSTR pwzCommandline,
  [in]           DWORD  dwFlags
);

Parametri

[in, optional] pwzCommandline

Puntatore a una stringa Unicode che specifica gli argomenti della riga di comando per l'applicazione quando viene riavviato. La dimensione massima della riga di comando che è possibile specificare è RESTART_MAX_CMD_LINE caratteri. Non includere il nome dell'eseguibile nella riga di comando; questa funzione lo aggiunge per l'utente.

Se questo parametro è NULL o una stringa vuota, la riga di comando registrata in precedenza viene rimossa. Se l'argomento contiene spazi, usare virgolette intorno all'argomento.

[in] dwFlags

Questo parametro può essere 0 o uno o più dei valori seguenti.

Valore Significato
RESTART_NO_CRASH
1
Non riavviare il processo se termina a causa di un'eccezione non gestita.
RESTART_NO_HANG
2
Non riavviare il processo se termina a causa dell'applicazione che non risponde.
RESTART_NO_PATCH
4
Non riavviare il processo se termina a causa dell'installazione di un aggiornamento.
RESTART_NO_REBOOT
8
Non riavviare il processo se il computer viene riavviato come risultato di un aggiornamento.

Valore restituito

Questa funzione restituisce S_OK in caso di esito positivo o in uno dei codici di errore seguenti.

Codice restituito Descrizione
E_FAIL
Errore interno.
E_INVALIDARG
La riga di comando specificata è troppo lunga.

Commenti

La registrazione iniziale per il riavvio deve verificarsi prima che l'applicazione verifichi un'eccezione non gestita o diventi non rispondente. È quindi possibile chiamare questa funzione dall'interno del callback di ripristino per aggiornare la riga di comando.

Per un'applicazione Windows aggiornata, l'ultima opportunità di chiamare questa funzione è durante l'elaborazione del messaggio di WM_QUERYENDSESSION . Per un'applicazione console che viene aggiornata, la registrazione deve verificarsi prima che il programma di installazione tenti di arrestare l'applicazione (è necessario mantenere la registrazione corrente; non è possibile chiamare questa funzione durante la gestione della notifica di CTRL_C_EVENT).

Se si esegue la registrazione per il riavvio e l'applicazione rileva un'eccezione non gestita o non è reattiva, l'utente offre l'opportunità di riavviare l'applicazione; l'applicazione non viene riavviata automaticamente senza il consenso dell'utente. Tuttavia, se l'applicazione viene aggiornata e richiede un riavvio, l'applicazione viene riavviata automaticamente.

Per evitare riavvii ciclici, il sistema riavvia l'applicazione solo se è in esecuzione per un minimo di 60 secondi.

Si noti che per il riavvio di un'applicazione quando l'aggiornamento richiede un riavvio del computer, il programma di installazione deve chiamare la funzione ExitWindowsEx con il flag di EWX_RESTARTAPPS impostato o la funzione InitiateShutdown con il set di flag SHUTDOWN_RESTARTAPPS.

Requisiti

Requisito Valore
Client minimo supportato Windows Vista [solo app desktop]
Server minimo supportato Windows Server 2008 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione winbase.h (include Windows.h)
Libreria Kernel32.lib
DLL Kernel32.dll

Vedere anche

Annullare la registrazioneApplicationRestart