Funzione WTSShutdownSystem (wtsapi32.h)

Arresta (e facoltativamente riavvia) il server Host sessione Desktop remoto (Host sessione Desktop remoto) specificato.

Per arrestare o riavviare il sistema, il processo chiamante deve avere il privilegio SE_SHUTDOWN_NAME abilitato. Per altre informazioni sui privilegi di sicurezza, vedere Privilegi e costanti di autorizzazione.

Sintassi

BOOL WTSShutdownSystem(
  [in] HANDLE hServer,
  [in] DWORD  ShutdownFlag
);

Parametri

[in] hServer

Gestire un server host sessione Desktop remoto. Specificare un handle aperto dalla funzione WTSOpenServer oppure specificare WTS_CURRENT_SERVER_HANDLE per indicare il server Host sessione Desktop remoto in cui è in esecuzione l'applicazione.

[in] ShutdownFlag

Indica il tipo di arresto. Questo parametro può avere uno dei valori seguenti.

WTS_WSD_LOGOFF

Forza tutte le sessioni client a disconnettersi (ad eccezione della sessione che chiama WTSShutdownSystem) e disabilita eventuali accessi remoti successivi. Questa operazione può essere usata come passaggio prima di arrestare. Gli accessi verranno riabilitati quando viene riavviato il servizio Servizi Desktop remoto.

Usare questo valore solo nella console servizi Desktop remoto.

WTS_WSD_POWEROFF

Arresta il sistema nel server Host sessione Desktop remoto e, nei computer che supportano il controllo software dell'alimentazione ac, disattiva l'alimentazione. Equivale a chiamare ExitWindowsEx con EWX_SHUTDOWN e EWX_POWEROFF. Il processo di chiamata deve avere il privilegio SE_SHUTDOWN_NAME abilitato.

WTS_WSD_REBOOT

Arresta e quindi riavvia il sistema nel server Host sessione Desktop remoto. Equivale a chiamare ExitWindowsEx con EWX_REBOOT. Il processo di chiamata deve avere il privilegio SE_SHUTDOWN_NAME abilitato.

WTS_WSD_SHUTDOWN

Arresta il sistema nel server Host sessione Desktop remoto. Equivale a chiamare la funzione ExitWindowsEx con EWX_SHUTDOWN. Il processo di chiamata deve avere il privilegio SE_SHUTDOWN_NAME abilitato.

WTS_WSD_FASTREBOOT

Questo valore non è attualmente supportato.

Valore restituito

Se la funzione ha esito positivo, il valore restituito è diverso da zero.

Se la funzione ha esito negativo, il valore restituito è zero. Per informazioni dettagliate sull'errore, chiamare GetLastError.

Commenti

Un arresto del sistema termina tutti gli utenti e i programmi attivi. I passaggi seguenti si verificano durante l'arresto.

  1. Un comando di uscita viene rilasciato a tutte le applicazioni utente attive.
  2. Se l'applicazione non viene chiusa entro un intervallo specifico, l'applicazione viene terminata.
  3. Dopo la chiusura di tutte le applicazioni per un utente, l'utente viene disconnesso.
  4. Dopo che tutti gli utenti vengono disconnessi, viene rilasciato un comando di uscita a tutti i servizi di sistema.
  5. Se il servizio di sistema non termina entro un intervallo specifico, il servizio viene terminato.
  6. La cache del file system viene scritta su disco.
  7. I dischi sono contrassegnati in sola lettura.
  8. Il server Host sessione Desktop remoto visualizza il messaggio "È ora sicuro disattivare il computer" oppure il sistema viene riavviato se viene specificato WTS_WSD_REBOOT . Il messaggio viene visualizzato nella console perché tutte le sessioni client sono state terminate.
Nota Poiché molti utenti e processi possono essere presenti in una configurazione a più utenti di grandi dimensioni, le configurazioni di sistema di grandi dimensioni potrebbero richiedere qualche tempo per arrestare in modo ordinato. È importante consentire al sistema di arrestare completamente.
 
Windows Server 2008 e Windows Vista: Una chiamata a WTSShutdownSystem non funziona quando la Gestione connessioni remota (RCM) è disabilitata. Si tratta del caso in cui il servizio Servizi Desktop remoto viene arrestato.

Requisiti

Requisito Valore
Client minimo supportato Windows Vista
Server minimo supportato Windows Server 2008
Piattaforma di destinazione Windows
Intestazione wtsapi32.h
Libreria Wtsapi32.lib
DLL Wtsapi32.dll

Vedi anche

Exitwindowsex