Iniciando serviços automaticamente

Durante a inicialização do sistema, o SCM inicia todos os serviços de inicialização automática e os serviços dos quais eles dependem. Por exemplo, se um serviço de início automático depender de um serviço de início por demanda, o serviço de início por demanda também será iniciado automaticamente.

A ordem de carregamento é determinada pelo seguinte:

  1. A ordem dos grupos na lista de grupos de ordenação de carga. Essas informações são armazenadas no valor List na seguinte chave do Registro:

    HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\ServiceGroupOrder

    Para especificar o grupo de ordenação de carga para um serviço, use o parâmetro lpLoadOrderGroup da função CreateService ou ChangeServiceConfig.

  2. A ordem dos serviços dentro de um grupo especificado no vetor de ordem de marcas. Essas informações são armazenadas na seguinte chave do Registro:

    HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\GroupOrderList

  3. As dependências listadas para cada serviço.

Quando a inicialização é concluída, o sistema executa o programa de verificação de inicialização especificado pelo valor ImagePath da seguinte chave do Registro: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\BootVerificationProgram.

Por padrão, esse valor não é definido. O sistema simplesmente informa que a inicialização foi bem-sucedida depois que o primeiro usuário fez logon. Você pode fornecer um programa de verificação de inicialização que verifica o sistema em busca de problemas e relata o status de inicialização para o SCM usando a função NotifyBootConfigStatus.

Após uma inicialização bem-sucedida, o sistema salva um clone do banco de dados na configuração LKG (last-known-good). O sistema pode restaurar essa cópia do banco de dados se as alterações feitas no banco de dados ativo causarem falha na reinicialização do sistema. A seguir está a chave do Registro para esse banco de dados:

HKEY_LOCAL_MACHINE\SYSTEM\ControlSetXXX\Serviços

onde XXX é o valor salvo no seguinte valor do Registro: HKEY_LOCAL_MACHINE\System\Select\LastKnownGood.

Se um serviço de inicialização automática com um nível de controle de erro SERVICE_ERROR_CRITICAL falhar ao iniciar, o SCM reinicializará o computador usando a configuração LKG. Se a configuração LKG já estiver sendo usada, a inicialização falhará.

Um serviço de início automático pode ser configurado como um serviço de início automático atrasado chamando a função ChangeServiceConfig2 com SERVICE_CONFIG_DELAYED_AUTO_START_INFO. Essa alteração entra em vigor após a próxima inicialização do sistema. Para obter mais informações, consulte SERVICE_DELAYED_AUTO_START_INFO.