The following information comes from Microsoft: http://support.microsoft.com/default.aspx?scid=kb;en-us;193888
In some computers, especially older systems and those with slower peripherals, it may be necessary to delay the loading of a specific Windows service for the computer to boot properly. Or you may want to ensure that one service has started and is available for use before another for troubleshooting purposes. This can impact such issues as a domain controller, which cannot access the network where a protocol, or a service such as DHCP, attempts to load BEFORE the network card has had a chance to be bound (for example, Compaq Netflex).
You will first need to verify that the dependency you want to create does not already exist. The following are some of the most common dependencies that already exist in a default configuration:
Service Depends on
------- ----------
Alerter LanmanWorkstation
Browser LanmanWorkstation, LanmanServer, LmHosts
ClipSrv NetDDE
DHCP Afd, NetBT, TCP/IP
Messenger LanmanWorkstation, NetBIOS
NetBT TCP/IP
NetDDE NetDDEDSDM
NetLogon LanmanWorkstation, LmHosts
Parallel Parport
Replicator LanmanServer, LanmanWorkstation
The Registry subkeys for services are located in the following path and can control how services are loaded.
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\<Service name>
Important This section, method, or task contains steps that tell you how to modify the registry. However, serious problems might occur if you modify the registry incorrectly. Therefore, make sure that you follow these steps carefully. For added protection, back up the registry before you modify it. Then, you can restore the registry if a problem occurs. For more information about how to backup and restore the registry, click the following article number to view the article in the Microsoft Knowledge Base:
322756 How to backup and restore the registry in Windows
To create a new dependency, select the subkey representing the service you want to delay, click Edit, and then click Add Value. Create a new value name "DependOnService" (without the quotation marks) with a data type of REG_MULTI_SZ, and then click OK. When the Data dialog box appears, type the name or names of the services that you prefer to start before this service with one entry for each line, and then click OK.
The name of the service you would enter in the Data dialog box is the exact name of the service as it appears in the registry under the Services key.
When the computer starts, it uses this entry to verify that the service or services listed in this value are started before attempting to start the dependent service.
For example, you may want to ensure that your Server service loads before the Windows Internet Name Service (WINS). If you select the WINS key in the registry, you will notice that the DependOnService value already exists in the WINS key. In a default installation, WINS is already dependent on both RPCSS (Remote Procedure Call) and NTLMSSP (Windows NT LanMan Security Support Provider) services. To add the Server service to this list, double-click the DependOnService value. In the Multi-String Editor, on the line below NTMLSSP, add the entry "LANMANSERVER" (without quotation marks), and then click OK.
In addition, Windows 2000 and Windows 2003 Active Directory needs to find and use the DNS Server service. The Netlogon service can be delayed to ensure that the DNS Server service is up and running for Dynamic DNS registration and query for existing Active Directory domain controllers that are in the DNS server database. Use the DependOnService in the Netlogon and add DNS to the list of LanmanWorkstation and LanmanServer. This delays Netlogon from starting until the DNS Server service on that same computer is started and ready.
Note Only delay the Netlogon service for DNS on a Windows 2000 or Windows 2003 Server when the DNS service is on the same Windows 2000 or Windows 2003-based server.
Note Entries in this field are NOT case-sensitive.
Warning Adding this entry manually may prevent the system from starting properly if you establish a "circular dependency." In its simplest form, such a problem would occur when you make two differing services dependent on one another. Neither service would be able to start as they would both require the other to be started first.
Note If you have a service that needs to start late in the boot cycle but you do not have a specific service dependency, as explained above, then choose one of the services which startup last as the data value for the value "Depends on Service". Services commonly selected are Spooler and Messenger.