Funzione RmShutdown (restartmanager.h)
Avvia l'arresto delle applicazioni. Questa funzione può essere chiamata solo dal programma di installazione che ha avviato la sessione di Restart Manager usando la funzione RmStartSession .
Sintassi
DWORD RmShutdown(
[in] DWORD dwSessionHandle,
[in] ULONG lActionFlags,
[in, optional] RM_WRITE_STATUS_CALLBACK fnStatus
);
Parametri
[in] dwSessionHandle
Handle per una sessione di Gestione riavvio esistente.
[in] lActionFlags
Una o più opzioni RM_SHUTDOWN_TYPE che configurano l'arresto dei componenti. I valori seguenti possono essere combinati da un operatore OR per specificare che le applicazioni e i servizi non reattivi devono essere costretti a arrestare se e solo se tutte le applicazioni sono state registrate per il riavvio.
Valore | Significato |
---|---|
|
Forzare l'arresto di applicazioni e servizi non risponde dopo il periodo di timeout. Un'applicazione che non risponde a una richiesta di arresto è costretta a arrestarsi entro 30 secondi. Un servizio che non risponde a una richiesta di arresto è costretto a arrestarsi dopo 20 secondi. |
|
Arrestare le applicazioni se e solo se tutte le applicazioni sono state registrate per il riavvio usando la funzione RegisterApplicationRestart . Se non è possibile riavviare processi o servizi, non vengono arrestati processi o servizi. |
[in, optional] fnStatus
Puntatore a una funzione RM_WRITE_STATUS_CALLBACK utilizzata per comunicare lo stato dettagliato durante l'esecuzione di questa funzione. Se NULL non viene fornito alcun stato.
Valore restituito
Si tratta dell'errore più recente ricevuto. La funzione può restituire uno dei codici di errore di sistema definiti in Winerror.h.
Valore | Significato |
---|---|
|
Tutte le operazioni di arresto, riavvio e callback sono state completate correttamente. |
|
Non sono state eseguite azioni di arresto. Uno o più processi o servizi richiedono un riavvio del sistema da arrestare. Questo codice di errore viene restituito quando Gestione riavvio rileva che è necessario un riavvio del sistema prima di arrestare qualsiasi applicazione. |
|
Non è stato possibile arrestare alcune applicazioni. AppStatus delle strutture RM_PROCESS_INFO restituite dalla funzione RmGetList contengono informazioni sullo stato aggiornate. |
|
Questo valore di errore viene restituito dalla funzione RmShutdown quando la richiesta di annullare un'operazione ha esito positivo. |
|
Non è stato possibile ottenere un mutex di scrittura del Registro di sistema nel tempo assegnato. È consigliabile riavviare un sistema perché è probabile che l'uso di Gestione riavvio abbia esito negativo. |
|
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 non zero. |
|
Un'operazione non è riuscita a leggere o scrivere nel Registro di sistema. |
|
Impossibile completare un'operazione di Gestione riavvio perché non è disponibile memoria sufficiente. |
|
Non esiste alcuna sessione di Gestione riavvio per l'handle fornito. |
Commenti
La funzione RmShutdown chiama RmGetList e aggiorna l'elenco dei processi attualmente usando risorse registrate prima di tentare di arrestare i processi. La funzione RmShutdown tenta quindi di arrestare i processi usando le risorse registrate nell'elenco più recente. La funzione RmShutdown aggiorna il membro AppStatus delle strutture RM_PROCESS_INFO restituite dalla funzione RmGetList con informazioni dettagliate sullo stato.
Gestione riavvio rispetta i privilegi che separano sessioni utente o terminale diverse. Un programma di installazione in esecuzione come servizio con privilegi LocalSystem non può arrestare o riavviare tutte 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.
I programmi di installazione devono sempre riavviare applicazioni e 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.
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 |