Funzione RmRestart (restartmanager.h)
Riavvia le applicazioni e i servizi che sono stati arrestati dalla funzione RmShutdown e che sono stati registrati per il riavvio usando la funzione RegisterApplicationRestart . Questa funzione può essere chiamata solo dal programma di installazione primario che ha chiamato la funzione RmStartSession per avviare la sessione di Restart Manager.
Sintassi
DWORD RmRestart(
[in] DWORD dwSessionHandle,
DWORD dwRestartFlags,
[in, optional] RM_WRITE_STATUS_CALLBACK fnStatus
);
Parametri
[in] dwSessionHandle
Handle per la sessione di Gestione riavvio esistente.
dwRestartFlags
Riservato. Questo parametro deve essere 0.
[in, optional] fnStatus
Puntatore a una funzione di callback del messaggio di stato usata per comunicare lo stato durante l'esecuzione della funzione RmRestart . Se NULL, non viene specificato alcuno stato.
Valore restituito
Questo è l'errore più recente ricevuto. La funzione può restituire uno dei codici di errore di sistema definiti in Winerror.h.
Valore | Significato |
---|---|
|
Questo valore di errore viene restituito se la funzione RmRestart viene chiamata con un handle di sessione valido prima di chiamare la funzione RmShutdown . |
|
Impossibile riavviare una o più applicazioni. Le strutture RM_PROCESS_INFO restituite dalla funzione RmGetList contengono informazioni aggiornate sullo stato. |
|
Una funzione restart manager non è in grado di ottenere un mutex di scrittura del Registro di sistema nel tempo assegnato. È consigliabile riavviare il sistema perché è probabile che l'uso di Gestione riavvio abbia esito negativo. |
|
Questo valore di errore viene restituito dalla funzione RmRestart quando la richiesta di annullare un'operazione ha esito positivo. |
|
Uno o più argomenti non sono corretti. Questo valore di errore viene restituito dalla funzione Restart Manager se un puntatore NULL o 0 viene passato in un parametro che richiede un valore diverso da null e diverso da zero. |
|
Un'operazione non è riuscita a leggere o scrivere nel Registro di sistema. |
|
Impossibile completare un'operazione di Gestione riavvio perché non era disponibile memoria sufficiente. |
|
Non esiste alcuna sessione di Gestione riavvio per l'handle fornito. |
|
La funzione ha esito positivo e restituisce . |
Commenti
Dopo aver chiamato la funzione RmRestart , le strutture RM_PROCESS_INFO restituite dalla funzione RmGetList contengono informazioni sullo stato aggiornate.
Gestione riavvio rispetta i privilegi che separano diverse sessioni utente o terminale. Un programma di installazione in esecuzione come servizio con privilegi LocalSystem non può arrestare o riavviare le applicazioni in un'altra sessione utente o terminale. I programmi di installazione devono implementare metodi personalizzati per arrestare e riavviare le applicazioni in esecuzione in altre sessioni. Un metodo consiste nell'avviare un nuovo processo di installazione nell'altra sessione per eseguire operazioni di arresto e riavvio.
Quando un'applicazione console viene arrestata e riavviata da Gestione riavvio, l'applicazione viene riavviata in una nuova console.
I programmi di installazione devono sempre riavviare l'applicazione e i servizi usando la funzione RmRestart anche quando la funzione RmShutdown restituisce un errore che indica che non tutte le applicazioni e i servizi potrebbero essere arrestati.
La funzione RmRestart non riavvia le applicazioni eseguite con privilegi elevati. Anche se l'applicazione è stata arrestata da Gestione riavvio.
La funzione RmRestart non riavvia le applicazioni che non vengono eseguite come utente attualmente connesso. Anche se l'applicazione è stata arrestata da Gestione riavvio. Ad esempio, la funzione RmRestart non riavvia le applicazioni avviate con il comando RunAs che non viene eseguito come utente attualmente connesso. Queste applicazioni devono essere riavviate manualmente.
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 | restartmanager.h |
Libreria | Rstrtmgr.lib |
DLL | Rstrtmgr.dll |