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 da attendere prima di arrestare il 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 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. I valori seguenti sono definiti.
Valore | Significato |
---|---|
|
Tutte le sessioni vengono disattivate 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 in modo forzato. Se questo flag non è impostato, la sessione di origine viene arrestata in modo interattivo, quindi un arresto non è garantito anche se la funzione restituisce correttamente. |
|
Esegue l'override del periodo di tolleranza in modo che il computer venga arrestato immediatamente. |
|
A partire daAvvioShutdown in esecuzione su Windows 8, è necessario includere il flag di SHUTDOWN_HYBRID con uno o più flag in questa tabella per specificare le opzioni per l'arresto.
A partire da Windows 8, AvviaShutdown avvia sempre un arresto completo del sistema se il flag di SHUTDOWN_HYBRID è assente. |
|
Il computer installa tutti gli aggiornamenti prima di avviare l'arresto. |
|
Il computer viene arrestato ma non è attivato 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 di EWX_RESTARTAPPS. In questo modo vengono riavviate tutte le applicazioni registrate per il riavvio usando la funzione RegisterApplicationRestart . |
[in] dwReason
Motivo dell'avvio dell'arresto. Questo parametro deve essere uno dei codici di motivo di arresto del sistema. Se questo parametro è zero, il valore predefinito è un arresto non definito registrato come "Nessun 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 obbligatorio (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. |
|
È stato pianificato un arresto per il computer specificato, ma non è stato avviato. Affinché questa funzione abbia esito positivo, è necessario impostare il flag SHUTDOWN_GRACE_OVERRIDE . |
|
Uno o più utenti diversi dall'utente corrente vengono connessi al computer specificato e il flag di SHUTDOWN_FORCE_OTHERS non è stato impostato. |
Commenti
Per arrestare il computer locale, il thread chiamante deve avere il privilegio di 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 di SE_SHUTDOWN_NAME nel computer in cui sono connessi e gli amministratori possono abilitare il privilegio di SE_REMOTE_SHUTDOWN_NAME nei computer remoti. Per altre informazioni, vedere Esecuzione con privilegi speciali.
Motivi comuni per l'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 il passaggio rapido dell'utente è abilitato, ma nessun utente è connesso.
Un valore restituito diverso da zero non indica che il logoff è stato o avrà esito positivo. L'arresto è un processo asincrono e può verificarsi a lungo dopo che la chiamata API è stata restituita o meno. Anche se il valore di timeout è zero, l'arresto può comunque essere interrotto da applicazioni, servizi o anche dal sistema. Il valore restituito non zero indica che la convalida dei diritti e dei parametri è stata completata 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 preprocessore UNICODE. La combinazione dell'utilizzo dell'alias di codifica neutrale con il codice che non è neutrale dalla codifica può causare errori di corrispondenza che causano errori di compilazione o runtime. Per altre informazioni, vedere Convenzioni per i prototipi di funzione.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows Vista [app desktop | App UWP] |
Server minimo supportato | Windows Server 2008 [app desktop | App UWP] |
Piattaforma di destinazione | Windows |
Intestazione | winreg.h (include Windows.h) |
Libreria | Advapi32.lib |
DLL | Advapi32.dll |