Reinicializações do sistema

O instalador de Windows pode determinar quando uma reinicialização do sistema é necessária e solicitar automaticamente que o usuário reinicialize no final da instalação. Por exemplo, o instalador solicitará automaticamente uma reinicialização se precisar substituir os arquivos que estiverem em uso durante a instalação.

Aplicativos que usam Windows Installer versão 4.0 ou posterior para instalação e manutenção usam automaticamente o Gerenciador de Reinicialização para reduzir as reinicializações do sistema. Windows Installer versão 4.0 ou posterior tem propriedades e políticas que permitem que o autor do pacote e os administradores controlem a interação do instalador de Windows com o Gerenciador de Reinicialização. Para obter mais informações, consulte Como usar Windows instalador com o Gerenciador de Reinicialização.

Os autores do pacote de instalação podem agendar e suprimir reinicializações usando ações padrão nas tabelas de sequência e definindo propriedades. As seguintes ações e propriedades são usadas para lidar com reinicializações do sistema.

Ação, caixa de diálogo ou propriedade Breve descrição
Ação ForceReboot Solicita ao usuário uma reinicialização durante a instalação.
Ação ScheduleReboot Solicita ao usuário uma reinicialização no final da instalação.
Propriedade REBOOT Força ou suprime determinados prompts automáticos para uma reinicialização do sistema.
Propriedade REBOOTPROMPT Suprime a exibição de prompts para reinicializações para o usuário. Todas as reinicializações necessárias ocorrem automaticamente.
Propriedade AFTERREBOOT Normalmente usado em uma condição imposta à Ação ForceReboot.
Ação InstallValidate Exibe a caixa de diálogo FilesInUse, se necessário, dando aos usuários a oportunidade de desligar processos e evitar algumas reinicializações do sistema.
Caixa de diálogo FilesInUse Dá aos usuários a oportunidade de encerrar processos para evitar algumas reinicializações do sistema.
Caixa de diálogo MsiRMFilesInUse Oferece aos usuários a opção de usar o Gerenciador de Reinicialização para fechar e reiniciar aplicativos. Disponível a partir do Windows Installer versão 4.0.
Propriedade ReplacedInUseFiles Defina se o instalador é instalado em um arquivo em uso. Essa propriedade é usada por ações personalizadas para detectar que uma reinicialização é necessária.
MSIRESTARTMANAGERCONTROL Propriedade para desabilitar Windows interação do Instalador com o Gerenciador de Reinicialização. Disponível a partir do Windows Installer versão 4.0.
MSIDISABLERMRESTART Especifica como o Gerenciador de Reinicialização fecha e reinicia os aplicativos. Disponível a partir do Windows Installer versão 4.0.
MSIRMSHUTDOWN Especifica como o Gerenciador de Reinicialização fecha e reinicia os aplicativos. Disponível a partir do Windows Installer versão 4.0.
MsiSystemRebootPending O instalador define essa propriedade se uma reinicialização do sistema operacional estiver pendente. Disponível a partir do Windows Installer versão 4.0.
DisableAutomaticApplicationShutdown Política para desabilitar Windows interação do Instalador com o Gerenciador de Reinicialização. Disponível a partir do Windows Installer versão 4.0.

 

ERROR_INSTALL_SUSPEND significa que a instalação não foi concluída nem revertida. A instalação deve ser retomada antes de ser concluída. O sistema pode precisar ser reinicializado antes que a instalação possa ser retomada.

O instalador Windows retorna o código de erro ERROR_INSTALL_SUSPEND quando a ação ForceReboot é executada. Ele retornará ERROR_SUCCESS_REBOOT_REQUIRED se uma reinicialização for necessária antes de executar o aplicativo e retornará ERROR_SUCCESS_REBOOT_INITIATED se o instalador realmente tiver iniciado uma reinicialização. Observe que, como as reinicializações são assíncronas, a reinicialização pode realmente ocorrer antes que o código de erro seja retornado. Para obter mais informações, consulte Códigos de Erro.

Ações personalizadas podem forçar um prompt para reinicialização no final de uma instalação chamando MsiSetMode. Ações personalizadas também podem verificar se há um prompt de reinicialização pendente chamando MsiGetMode.

Caixa de diálogo FilesInUse

O instalador pode determinar quando uma reinicialização do sistema é necessária e solicitar ao usuário uma solicitação de reinicialização. Normalmente, uma reinicialização do sistema é necessária porque o instalador está tentando instalar um arquivo que está sendo usado no momento. Se a ação InstallValidate detectar a instalação de um arquivo em uso, ela exibirá a caixa de diálogo FilesInUse.

Se você espera que o instalador exiba um FilesInUseDialog, mas não o faz, isso pode ser devido a um dos seguintes motivos:

  • Os arquivos em uso não são executáveis.
  • O instalador não está realmente tentando instalar esses arquivos.
  • O processo que contém esses arquivos é o processo que invoca a instalação.
  • O processo que contém esses arquivos é aquele que não tem uma janela com um título associado a ele.

Para obter mais informações, consulte Registro em log de solicitações de reinicialização.