Função InitiateShutdownA (winreg.h)
Inicia um desligamento e uma reinicialização do computador especificado e reinicia todos os aplicativos que foram registrados para reinicialização.
Sintaxe
DWORD InitiateShutdownA(
[in, optional] LPSTR lpMachineName,
[in, optional] LPSTR lpMessage,
[in] DWORD dwGracePeriod,
[in] DWORD dwShutdownFlags,
[in] DWORD dwReason
);
Parâmetros
[in, optional] lpMachineName
O nome do computador a ser desligado. Se o valor desse parâmetro for NULL, o computador local será desligado.
[in, optional] lpMessage
A mensagem a ser exibida na caixa de diálogo de desligamento interativo.
[in] dwGracePeriod
O número de segundos a aguardar antes de desligar o computador. Se o valor desse parâmetro for zero, o computador será desligado imediatamente. Esse valor é limitado a MAX_SHUTDOWN_TIMEOUT.
Se o valor desse parâmetro for maior que zero e o parâmetro dwShutdownFlags especificar o sinalizador SHUTDOWN_GRACE_OVERRIDE, a função falhará e retornará o código de erro ERROR_BAD_ARGUMENTS.
[in] dwShutdownFlags
Um ou mais sinalizadores de bits que especificam opções para o desligamento. Os valores a seguir são definidos.
Valor | Significado |
---|---|
|
Todas as sessões são registradas com força. Se esse sinalizador não estiver definido e usuários diferentes do usuário atual estiverem conectados ao computador especificado pelo parâmetro lpMachineName, essa função falhará com um valor retornado de ERROR_SHUTDOWN_USERS_LOGGED_ON. |
|
Especifica que a sessão de origem é registrada com força. Se esse sinalizador não estiver definido, a sessão de origem será desligada interativamente, portanto, um desligamento não será garantido mesmo se a função retornar com êxito. |
|
Substitui o período de carência para que o computador seja desligado imediatamente. |
|
Começando com InitiateShutdown em execução no Windows 8, você deve incluir o sinalizador SHUTDOWN_HYBRID com um ou mais sinalizadores nesta tabela para especificar opções para o desligamento.
A partir do Windows 8, InitiateShutdown sempre iniciar um desligamento completo do sistema se o sinalizador de SHUTDOWN_HYBRID estiver ausente. |
|
O computador instala todas as atualizações antes de iniciar o desligamento. |
|
O computador está desligado, mas não está desligado ou reinicializado. |
|
O computador é desligado e desligado. |
|
O computador é desligado e reinicializado. |
|
O sistema é reinicializado usando a função ExitWindowsEx com o sinalizador EWX_RESTARTAPPS. Isso reinicia todos os aplicativos registrados para reinicialização usando a função |
[in] dwReason
O motivo para iniciar o desligamento. Esse parâmetro deve ser um dos códigos de motivo de desligamento do sistema . Se esse parâmetro for zero, o padrão será um desligamento indefinido registrado como "Nenhum título por esse motivo poderá ser encontrado". Por padrão, também é um desligamento não planejado. Dependendo de como o sistema está configurado, um desligamento não planejado dispara a criação de um arquivo que contém as informações de estado do sistema, o que pode atrasar o desligamento. Portanto, não use zero para esse parâmetro.
Valor de retorno
Se a função for bem-sucedida, ela retornará ERROR_SUCCESS.
Se a função falhar, ela retornará um dos seguintes códigos de erro.
Código de retorno | Descrição |
---|---|
|
O chamador não tem o privilégio necessário (SE_SHUTDOWN_PRIVILEGE ou SE_REMOTE_SHUTDOWN_PRIVILEGE) para executar essa operação. |
|
O computador especificado não existe ou não está acessível. |
|
O nome do computador especificado não é um nome de computador válido. |
|
O computador especificado não dá suporte a uma interface de desligamento. |
|
Um conjunto inválido de parâmetros foi passado. Isso inclui as combinações a seguir.
|
|
Um desligamento já foi iniciado no computador especificado. |
|
Um desligamento para o computador especificado foi agendado, mas não iniciado. Para que essa função seja bem-sucedida, o sinalizador SHUTDOWN_GRACE_OVERRIDE deve ser definido. |
|
Um ou mais usuários diferentes do usuário atual estão conectados ao computador especificado e o sinalizador de SHUTDOWN_FORCE_OTHERS não foi definido. |
Observações
Para desligar o computador local, o thread de chamada deve ter o privilégio SE_SHUTDOWN_NAME. Para desligar um computador remoto, o thread de chamada deve ter o privilégio SE_REMOTE_SHUTDOWN_NAME no computador remoto. Por padrão, os usuários podem habilitar o privilégio de SE_SHUTDOWN_NAME no computador no qual estão conectados e os administradores podem habilitar o privilégio SE_REMOTE_SHUTDOWN_NAME em computadores remotos. Para obter mais informações, consulte Em execução com privilégios especiais.
Os motivos comuns para falha incluem um nome de computador inválido ou inacessível ou privilégio insuficiente. O erro ERROR_SHUTDOWN_IN_PROGRESS será retornado se um desligamento já estiver em andamento no computador especificado. O erro ERROR_NOT_READY pode ser retornado se a alternância rápida de usuário estiver habilitada, mas nenhum usuário estiver conectado.
Um valor retornado diferente de zero não significa que o logoff foi ou será bem-sucedido. O desligamento é um processo assíncrono e pode ocorrer muito tempo depois que a chamada à API tiver retornado ou não. Mesmo que o valor do tempo limite seja zero, o desligamento ainda poderá ser anulado por aplicativos, serviços ou até mesmo pelo sistema. O valor retornado diferente de zero indica que a validação dos direitos e parâmetros foi bem-sucedida e que o sistema aceitou a solicitação de desligamento.
Nota
O cabeçalho winreg.h define InitiateShutdown como um alias que seleciona automaticamente a versão ANSI ou Unicode dessa função com base na definição da constante do pré-processador UNICODE. A combinação do uso do alias neutro de codificação com código que não é neutro em codificação pode levar a incompatibilidades que resultam em erros de compilação ou de runtime. Para obter mais informações, consulte Conventions for Function Prototypes.
Requisitos
Requisito | Valor |
---|---|
de cliente com suporte mínimo | Windows Vista [aplicativos da área de trabalho | Aplicativos UWP] |
servidor com suporte mínimo | Windows Server 2008 [aplicativos da área de trabalho | Aplicativos UWP] |
da Plataforma de Destino |
Windows |
cabeçalho | winreg.h (inclua Windows.h) |
biblioteca | Advapi32.lib |
de DLL |
Advapi32.dll |