Controlling the Order that Services start

The other day I had a problem where a new service was starting, but it seemed to delay the start of another service which I needed to be available early in the boot (Say at the GINA).

A quick google found that Services can be a part of Service Groups. The Service Groups can be ordered by using the registry editor. The Order is listed at

HKLM\SYSTEM\CurrentControlSet\Control\ServiceGroupOrdering

The list is in the form of a multi-string value. Services are started from top to bottom. To delay a service you can just move the Service Group it belongs to down. A little thought is required since you are moving the order that services are started. You don't want to start a service before its dependent services have all started.

To find out which group a service belongs to you can go to

HKLM\SYSTEM\CurrentControlSet\Services

Find your service and look for the Group value name. It looks like it is possible for a service to not have a group.