Condividi tramite


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
ERROR_REQUEST_OUT_OF_SEQUENCE
776
Questo valore di errore viene restituito se la funzione RmRestart viene chiamata con un handle di sessione valido prima di chiamare la funzione RmShutdown .
ERROR_FAIL_RESTART
352
Impossibile riavviare una o più applicazioni. Le strutture RM_PROCESS_INFO restituite dalla funzione RmGetList contengono informazioni aggiornate sullo stato.
ERROR_SEM_TIMEOUT
121
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.
ERROR_CANCELLED
1223
Questo valore di errore viene restituito dalla funzione RmRestart quando la richiesta di annullare un'operazione ha esito positivo.
ERROR_BAD_ARGUMENTS
160
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.
ERROR_WRITE_FAULT
29
Un'operazione non è riuscita a leggere o scrivere nel Registro di sistema.
ERROR_OUTOFMEMORY
14
Impossibile completare un'operazione di Gestione riavvio perché non era disponibile memoria sufficiente.
ERROR_INVALID_HANDLE
6
Non esiste alcuna sessione di Gestione riavvio per l'handle fornito.
ERROR_SUCCESS
0
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

Vedi anche

RegisterApplicationRestart

RmCancelCurrentTask

RmShutdown