Compartilhar via


Função WTSShutdownSystem (wtsapi32.h)

Desliga (e, opcionalmente, reinicia) o servidor do Host da Sessão da Área de Trabalho Remota (Host da Sessão da Área de Trabalho Remota) especificado.

Para desligar ou reiniciar o sistema, o processo de chamada deve ter o privilégio SE_SHUTDOWN_NAME habilitado. Para obter mais informações sobre privilégios de segurança, consulte Privilégios e constantes de autorização.

Sintaxe

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

Parâmetros

[in] hServer

Manipule para um servidor host de sessão de área de trabalho remota. Especifique um identificador aberto pela função WTSOpenServer ou especifique WTS_CURRENT_SERVER_HANDLE para indicar o servidor Host da Sessão de Área de Trabalho Remota no qual o aplicativo está sendo executado.

[in] ShutdownFlag

Indica o tipo de desligamento. Esse parâmetro pode usar um dos valores a seguir.

WTS_WSD_LOGOFF

Força todas as sessões de cliente a fazer logoff (exceto a sessão que chama WTSShutdownSystem) e desabilita os logons remotos subsequentes. Isso pode ser usado como uma etapa antes de desligar. Os logons serão habilitados novamente quando o serviço de Serviços de Área de Trabalho Remota for reiniciado.

Use esse valor somente no console dos Serviços de Área de Trabalho Remota.

WTS_WSD_POWEROFF

Desliga o sistema no servidor Host da Sessão de Área de Trabalho Remota e, em computadores que dão suporte ao controle de software da energia AC, desativa a energia. Isso é equivalente a chamar ExitWindowsEx com EWX_SHUTDOWN e EWX_POWEROFF. O processo de chamada deve ter o privilégio SE_SHUTDOWN_NAME habilitado.

WTS_WSD_REBOOT

Desliga e reinicia o sistema no servidor Host da Sessão de Área de Trabalho Remota. Isso é equivalente a chamar ExitWindowsEx com EWX_REBOOT. O processo de chamada deve ter o privilégio SE_SHUTDOWN_NAME habilitado.

WTS_WSD_SHUTDOWN

Desliga o sistema no servidor Host da Sessão de Área de Trabalho Remota. Isso é equivalente a chamar a função ExitWindowsEx com EWX_SHUTDOWN. O processo de chamada deve ter o privilégio SE_SHUTDOWN_NAME habilitado.

WTS_WSD_FASTREBOOT

Atualmente, não há suporte para esse valor.

Valor retornado

Se a função for bem-sucedida, o valor retornado será diferente de zero.

Se a função falhar, o valor retornado será zero. Para obter informações de erro estendidas, chame GetLastError.

Comentários

Um desligamento do sistema encerra todos os usuários e programas ativos. As etapas a seguir ocorrem durante o desligamento.

  1. Um comando exit é emitido para todos os aplicativos de usuário ativos.
  2. Se o aplicativo não sair dentro de um intervalo específico, o aplicativo será encerrado.
  3. Depois que todos os aplicativos de um usuário forem encerrados, o usuário será desconectado.
  4. Depois que todos os usuários são desconectados, um comando de saída é emitido para todos os serviços do sistema.
  5. Se o serviço do sistema não terminar dentro de um intervalo específico, o serviço será encerrado.
  6. O cache do sistema de arquivos é gravado em disco.
  7. Os discos são marcados como somente leitura.
  8. O servidor Host da Sessão de Área de Trabalho Remota exibe a mensagem "Agora é seguro desativar o computador" ou o sistema será reiniciado se WTS_WSD_REBOOT for especificado. (A mensagem é exibida no console porque todas as sessões do cliente foram encerradas.)
Nota Como pode haver muitos usuários e processos em uma grande configuração de vários usuários, grandes configurações do sistema podem levar algum tempo para serem desligadas de maneira ordenada. É importante permitir que o sistema desligue completamente.
 
Windows Server 2008 e Windows Vista: Uma chamada para WTSShutdownSystem não funciona quando o RCM (Gerenciador de Conexões Remoto) está desabilitado. Esse é o caso quando o serviço de Serviços de Área de Trabalho Remota é interrompido.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows Vista
Servidor mínimo com suporte Windows Server 2008
Plataforma de Destino Windows
Cabeçalho wtsapi32.h
Biblioteca Wtsapi32.lib
DLL Wtsapi32.dll

Confira também

ExitWindowsEx