Iniciar automáticamente los servicios

Durante el arranque del sistema, SCM inicia todos los servicios de inicio automático y los servicios de los que dependen. Por ejemplo, si un servicio de inicio automático depende de un servicio de inicio a petición, el servicio de inicio a petición también se inicia automáticamente.

La orden de carga se determina según lo siguiente:

  1. El orden de los grupos de la lista de grupos de ordenación de carga. Esta información se almacena en el valor Lista en la siguiente clave del registro:

    HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\ServiceGroupOrder

    Para especificar el grupo de ordenación de carga para un servicio, utilice el parámetro lpLoadOrderGroup de la función CreateService o ChangeServiceConfig.

  2. El orden de los servicios dentro de un grupo especificado en el vector de orden de etiquetas. Esta información se almacena en la siguiente clave del registro:

    HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\GroupOrderList

  3. Las dependencias enumeradas para cada servicio.

Una vez completado el arranque, el sistema ejecuta el programa de comprobación de arranque especificado por el valor imagePath de la siguiente clave del registro: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\BootVerificationProgram.

De manera predeterminada, este valor no está establecido. El sistema simplemente informa de que el arranque se realizó correctamente después de que el primer usuario haya iniciado sesión. Puede proporcionar un programa de comprobación de arranque que compruebe si el sistema tiene problemas e informa del estado de arranque al SCM mediante la función NotifyBootConfigStatus.

Después de un arranque correcto, el sistema guarda un clon de la base de datos en la última configuración correcta conocida. El sistema puede restaurar esta copia de la base de datos si los cambios realizados en la base de datos activa hacen que se produzca un error en el arranque del sistema. A continuación se muestra la clave del registro para esta base de datos:

HKEY_LOCAL_MACHINE\SYSTEM\ControlSetXXX\Services

donde XXX es el valor guardado en el siguiente valor del registro: HKEY_LOCAL_MACHINE\System\Select\LastKnownGood.

Si un servicio de inicio automático con un nivel de control de error de SERVICE_ERROR_CRITICAL no se puede iniciar, el SCM reinicia el equipo mediante la última configuración correcta conocida. Si la última configuración correcta conocida ya se está usando, se produce un error en el arranque.

Un servicio de inicio automático se puede configurar como un servicio de inicio automático retrasado llamando a la función ChangeServiceConfig2 con SERVICE_CONFIG_DELAYED_AUTO_START_INFO. Este cambio surte efecto después del siguiente arranque del sistema. Para obtener más información, consulte SERVICE_DELAYED_AUTO_START_INFO.