Funzione InitiateShutdownA (winreg.h)
Avvia un arresto e un riavvio del computer specificato e riavvia tutte le applicazioni registrate per il riavvio.
Sintassi
DWORD InitiateShutdownA(
[in, optional] LPSTR lpMachineName,
[in, optional] LPSTR lpMessage,
[in] DWORD dwGracePeriod,
[in] DWORD dwShutdownFlags,
[in] DWORD dwReason
);
Parametri
[in, optional] lpMachineName
Nome del computer da arrestare. Se il valore di questo parametro è NULL, il computer locale viene arrestato.
[in, optional] lpMessage
Messaggio da visualizzare nella finestra di dialogo di arresto interattivo.
[in] dwGracePeriod
Numero di secondi di attesa prima dell'arresto del computer. Se il valore di questo parametro è zero, il computer viene arrestato immediatamente. Questo valore è limitato a MAX_SHUTDOWN_TIMEOUT.
Se il valore di questo parametro è maggiore di zero e il parametro dwShutdownFlags parametro specifica il flag SHUTDOWN_GRACE_OVERRIDE, la funzione ha esito negativo e restituisce il codice di errore ERROR_BAD_ARGUMENTS.
[in] dwShutdownFlags
Uno o più flag di bit che specificano le opzioni per l'arresto. Vengono definiti i valori seguenti.
Valore | Significato |
---|---|
|
Tutte le sessioni vengono disconnesse forzatamente. Se questo flag non è impostato e gli utenti diversi dall'utente corrente vengono connessi al computer specificato dal parametro lpMachineName, questa funzione non riesce con un valore restituito di ERROR_SHUTDOWN_USERS_LOGGED_ON. |
|
Specifica che la sessione di origine viene disconnessa forzatamente. Se questo flag non è impostato, la sessione di origine viene arrestata in modo interattivo, quindi non è garantito un arresto anche se la funzione viene restituita correttamente. |
|
Esegue l'override del periodo di tolleranza in modo che il computer venga arrestato immediatamente. |
|
A partire da InitiateShutdown in esecuzione in Windows 8, devi includere il flag SHUTDOWN_HYBRID con uno o più flag in questa tabella per specificare le opzioni per l'arresto.
A partire da Windows 8, InitiateShutdown avviare sempre un arresto completo del sistema se il flag SHUTDOWN_HYBRID è assente. |
|
Il computer installa tutti gli aggiornamenti prima di avviare l'arresto. |
|
Il computer viene arrestato ma non è spento o riavviato. |
|
Il computer viene arrestato e spento. |
|
Il computer viene arrestato e riavviato. |
|
Il sistema viene riavviato usando la funzione ExitWindowsEx con il flag EWX_RESTARTAPPS. In questo modo, tutte le applicazioni registrate per il riavvio vengono riavviate usando la funzione RegisterApplicationRestart |
[in] dwReason
Motivo dell'avvio dell'arresto. Questo parametro deve essere uno dei codici motivo di arresto del sistema . Se questo parametro è zero, il valore predefinito è un arresto non definito registrato come "Non è stato possibile trovare alcun titolo per questo motivo". Per impostazione predefinita, è anche un arresto non pianificato. A seconda della configurazione del sistema, un arresto non pianificato attiva la creazione di un file contenente le informazioni sullo stato del sistema, che può ritardare l'arresto. Pertanto, non usare zero per questo parametro.
Valore restituito
Se la funzione ha esito positivo, restituisce ERROR_SUCCESS.
Se la funzione ha esito negativo, restituisce uno dei codici di errore seguenti.
Codice restituito | Descrizione |
---|---|
|
Il chiamante non dispone del privilegio necessario (SE_SHUTDOWN_PRIVILEGE o SE_REMOTE_SHUTDOWN_PRIVILEGE) per eseguire questa operazione. |
|
Il computer specificato non esiste o non è accessibile. |
|
Il nome computer specificato non è un nome computer valido. |
|
Il computer specificato non supporta un'interfaccia di arresto. |
|
È stato passato un set di parametri non valido. Sono incluse le combinazioni seguenti.
|
|
Un arresto è già stato avviato nel computer specificato. |
|
Un arresto per il computer specificato è stato pianificato ma non avviato. Affinché questa funzione abbia esito positivo, è necessario impostare il flag SHUTDOWN_GRACE_OVERRIDE. |
|
Uno o più utenti diversi dall'utente corrente sono connessi al computer specificato e il flag di SHUTDOWN_FORCE_OTHERS non è stato impostato. |
Osservazioni
Per arrestare il computer locale, il thread chiamante deve avere il privilegio SE_SHUTDOWN_NAME. Per arrestare un computer remoto, il thread chiamante deve avere il privilegio SE_REMOTE_SHUTDOWN_NAME nel computer remoto. Per impostazione predefinita, gli utenti possono abilitare il privilegio SE_SHUTDOWN_NAME nel computer in cui sono connessi e gli amministratori possono abilitare il privilegio SE_REMOTE_SHUTDOWN_NAME nei computer remoti. Per altre informazioni, vedere esecuzione con privilegi speciali.
I motivi comuni dell'errore includono un nome computer non valido o inaccessibile o privilegi insufficienti. L'errore ERROR_SHUTDOWN_IN_PROGRESS viene restituito se un arresto è già in corso nel computer specificato. L'errore ERROR_NOT_READY può essere restituito se l'opzione rapida dell'utente è abilitata, ma nessun utente è connesso.
Un valore restituito diverso da zero non indica che la disconnessione è stata o avrà esito positivo. L'arresto è un processo asincrono e può verificarsi molto tempo dopo che la chiamata API è stata restituita o non affatto. Anche se il valore di timeout è zero, l'arresto può comunque essere interrotto da applicazioni, servizi o persino dal sistema. Il valore restituito diverso da zero indica che la convalida dei diritti e dei parametri ha avuto esito positivo e che il sistema ha accettato la richiesta di arresto.
Nota
L'intestazione winreg.h definisce InitiateShutdown come alias che seleziona automaticamente la versione ANSI o Unicode di questa funzione in base alla definizione della costante del preprocessore UNICODE. La combinazione dell'utilizzo dell'alias indipendente dalla codifica con il codice non indipendente dalla codifica può causare mancate corrispondenze che generano errori di compilazione o di runtime. Per altre informazioni, vedere convenzioni di per i prototipi di funzioni.
Fabbisogno
Requisito | Valore |
---|---|
client minimo supportato | Windows Vista [app desktop | App UWP] |
server minimo supportato | Windows Server 2008 [app desktop | App UWP] |
piattaforma di destinazione | Finestre |
intestazione |
winreg.h (include Windows.h) |
libreria |
Advapi32.lib |
dll | Advapi32.dll |