Como as ações de Finish-Install são processadas
Observação
Os recursos descritos nesta seção não têm suporte em pacotes de driver universal ou móvel. Consulte Usando um arquivo INF universal.
As ações de instalação final de um dispositivo são processadas da mesma forma por um instalador (um instalador de classe, um co-instalador de classe ou um co-instalador de dispositivo), independentemente de a instalação ter sido uma instalação de hardware ou a instalação ser iniciada executando um programa de instalação, como o Assistente de Novo Hardware Encontrado, o Assistente de Software do Driver de Atualização ou um programa de instalação fornecido pelo fornecedor (uma instalação de software primeiro).
Nota Em Windows 8, Windows 8.1 e Windows 10, as ações de conclusão de instalação devem ser concluídas na Central de Ações por um administrador (ou um usuário limitado que possa fornecer credenciais de administrador para um prompt UAC). Os usuários devem clicar em "Concluir a instalação do software do dispositivo".
O Windows processa ações de instalação final após a conclusão de todas as outras operações de instalação e o dispositivo foi iniciado, incluindo:
- Instalação principal do dispositivo (também conhecida como instalação do lado do servidor), na qual o driver do dispositivo é instalado e carregado pelos componentes do gerenciador de Plug and Play (PnP) do sistema.
O Windows conclui as seguintes etapas para processar as ações de conclusão de instalação de um instalador:
No final da instalação principal do dispositivo, o Windows chama SetupDiCallClassInstaller para enviar uma solicitação DIF_NEWDEVICEWIZARD_FINISHINSTALL aos instaladores do dispositivo.
DIF_NEWDEVICEWIZARD_FINISHINSTALL é o único código DIF que é enviado no contexto da instalação principal do dispositivo e no contexto do cliente. Portanto, um instalador de classe, um co-instalador de classe ou um co-instalador de dispositivo devem indicar que ele tem ações de instalação final durante DIF_NEWDEVICEWIZARD_FINISHINSTALL processamento, em vez de durante DIF_INSTALLDEVICE processamento.
Se um instalador fornecer ações de instalação final, ele definirá o sinalizador DIF_FLAGSEX_FINISHINSTALL_ACTION em resposta a uma solicitação de DIF_NEWDEVICEWIZARD_FINISHINSTALL . Se o sinalizador DIF_FLAGSEX_FINISHINSTALL_ACTION for definido depois que todos os instaladores tiverem processado uma solicitação DIF_NEWDEVICEWIZARD_FINISHINSTALL, o dispositivo será sinalizado para executar uma ação de instalação de término.
Para obter mais informações sobre essa operação, consulte Marcando um dispositivo como tendo uma ação Finish-Install a ser executada.
Depois que a instalação do dispositivo principal for concluída para um dispositivo, o Windows verificará se o dispositivo foi sinalizado para executar uma ação de conclusão da instalação. Se tiver, o Windows enfileira um processo de conclusão de instalação que executa as ações de conclusão de instalação específicas para o dispositivo. O processo é executado no contexto do usuário.
Em Windows 8 e versões posteriores, as ações de instalação final não são executadas automaticamente como parte da instalação do dispositivo. Em vez disso, um administrador (ou um usuário limitado que pode fornecer credenciais de administrador para um prompt UAC) deve acessar a Central de Ações e abordar o item de manutenção "Concluir a instalação do software do dispositivo" para que a ação de conclusão da instalação seja executada. Até lá, a ação concluir a instalação não será executada. Por exemplo, se um usuário conectar um dispositivo que instala um driver que inclui uma ação concluir a instalação, a ação concluir a instalação não será executada automaticamente nesse momento. A ação concluir a instalação é executada posteriormente quando o usuário a inicia manualmente. Quando o Windows executa a ação concluir a instalação, a ação tem essa única oportunidade de execução. Se a ação falhar, deverá executar as etapas apropriadas para permitir que o usuário tente novamente e conclua mais tarde. A instalação do software de suporte que deve acompanhar um driver ainda pode ser realizada com uma ação de conclusão de instalação, mas também não será instalada automaticamente.
No Windows 7, o processo de instalação final é executado somente no contexto de um usuário com credenciais de administrador em um dos seguintes momentos:
- Na próxima vez que um usuário que tiver credenciais de administrador fizer logon enquanto o dispositivo estiver anexado.
- Quando o dispositivo é reanexado.
- Quando o usuário seleciona Verificar se há alterações de hardware no Gerenciador de Dispositivos.
Se um usuário estiver conectado sem privilégios administrativos, o Windows solicitará ao usuário consentimento e credenciais para executar as ações de conclusão de instalação em um contexto de administrador.
Quando as operações de instalação concluídas são executadas, o processo de conclusão da instalação inicia e conclui todas as páginas do assistente de instalação final do dispositivo e, em seguida, chama SetupDiCallClassInstaller para enviar uma solicitação de DIF_FINISHINSTALL_ACTION a todos os instaladores do dispositivo, conforme descrito em Executando Finish-Install Actions.
Depois que os instaladores tiverem concluído suas ações de instalação final, o Windows executará a ação de conclusão-instalação padrão, conforme descrito em Executando a Ação de Finish-Install Padrão.