Compartilhar via


Função RmRestart (restartmanager.h)

Reinicia aplicativos e serviços que foram desligados pela função RmShutdown e que foram registrados para serem reiniciados usando a função RegisterApplicationRestart . Essa função só pode ser chamada pelo instalador primário que chamou a função RmStartSession para iniciar a sessão do Gerenciador de Reinicialização.

Sintaxe

DWORD RmRestart(
  [in]           DWORD                    dwSessionHandle,
                 DWORD                    dwRestartFlags,
  [in, optional] RM_WRITE_STATUS_CALLBACK fnStatus
);

Parâmetros

[in] dwSessionHandle

Um identificador para a sessão do Gerenciador de Reinicialização existente.

dwRestartFlags

Reservado. Esse parâmetro deve ser 0.

[in, optional] fnStatus

Um ponteiro para uma função de retorno de chamada de mensagem status que é usada para se comunicar status enquanto a função RmRestart está em execução. Se FOR NULL, nenhuma status será fornecida.

Retornar valor

Esse é o erro mais recente recebido. A função pode retornar um dos códigos de erro do sistema definidos em Winerror.h.

Valor Significado
ERROR_REQUEST_OUT_OF_SEQUENCE
776
Esse valor de erro será retornado se a função RmRestart for chamada com um identificador de sessão válido antes de chamar a função RmShutdown .
ERROR_FAIL_RESTART
352
Não foi possível reiniciar um ou mais aplicativos. As estruturas RM_PROCESS_INFO retornadas pela função RmGetList contêm informações de status atualizadas.
ERROR_SEM_TIMEOUT
121
Uma função do Gerenciador de Reinicialização não pôde obter um mutex de gravação do Registro no tempo alocado. Uma reinicialização do sistema é recomendada porque o uso adicional do Gerenciador de Reinicialização provavelmente falhará.
ERROR_CANCELLED
1223
Esse valor de erro é retornado pela função RmRestart quando a solicitação para cancelar uma operação é bem-sucedida.
ERROR_BAD_ARGUMENTS
160
Um ou mais argumentos não estão corretos. Esse valor de erro será retornado pela função Gerenciador de Reinicialização se um ponteiro NULL ou 0 for passado em um parâmetro que exija um valor não nulo e não zero.
ERROR_WRITE_FAULT
29
Uma operação não pôde ler ou gravar no registro.
ERROR_OUTOFMEMORY
14
Uma operação do Gerenciador de Reinicialização não pôde ser concluída porque não havia memória suficiente disponível.
ERROR_INVALID_HANDLE
6
Não existe nenhuma sessão do Gerenciador de Reinicialização para o identificador fornecido.
ERROR_SUCCESS
0
A função é bem-sucedida e retorna.

Comentários

Depois de chamar a função RmRestart, as estruturas RM_PROCESS_INFO retornadas pela função RmGetList contêm informações de status atualizadas.

O Gerenciador de Reinicialização respeita os privilégios que separam diferentes sessões de usuário ou terminal. Um instalador em execução como um serviço com privilégios localSystem não pode desligar nem reiniciar nenhum aplicativo em outra sessão de usuário ou terminal. Os instaladores devem implementar métodos personalizados para desligar e reiniciar aplicativos que estão em execução em outras sessões. Um método seria iniciar um novo processo de instalador na outra sessão para executar operações de desligamento e reinicialização.

Quando um aplicativo de console é desligado e reiniciado pelo Gerenciador de Reinicialização, o aplicativo é reiniciado em um novo console.

Os instaladores sempre devem reiniciar aplicativos e serviços usando a função RmRestart mesmo quando a função RmShutdown retorna um erro indicando que nem todos os aplicativos e serviços podem ser desligados.

A função RmRestart não reinicia nenhum aplicativo executado com privilégios elevados. Mesmo que o aplicativo tenha sido desligado pelo Gerenciador de Reinicialização.

A função RmRestart não reinicia nenhum aplicativo que não seja executado como o usuário conectado no momento. Mesmo que o aplicativo tenha sido desligado pelo Gerenciador de Reinicialização. Por exemplo, a função RmRestart não reinicia os aplicativos iniciados com o comando Executar como que não é executado como o usuário conectado no momento. Esses aplicativos devem ser reiniciados manualmente.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows Vista [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2008 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho restartmanager.h
Biblioteca Rstrtmgr.lib
DLL Rstrtmgr.dll

Confira também

RegisterApplicationRestart

RmCancelCurrentTask

RmShutdown