How to Use the StartService API Within a Service

ID: Q133756

3.51 4.00 WINDOWS NT kbprg kbdocerr

The information in this article applies to:

SUMMARY

In the Win32 API Help file, it mentions that you cannot call the StartService API from within a service. This statement is not totally correct. It should say that you cannot call the StartService API from within a service while it is initializing.

An initializing service is a service which has not yet reported to the Service Control Manager a status of SERVICE_RUNNING. Once the service is running, you can use the StartService API within the service.

MORE INFORMATION

If your service is initializing due to a dependency or the auto start flag, If your service is initializing due to a dependency or the SERVICE_AUTO_START flag, and your service attempts to start another service, a deadlock state in the Service Control Manager may occur. The reason this occurs is because the call to StartService API blocks because the Service Control Manager has a lock on the service control database from the original initializing service.

KBCategory: kbprg kbdocerr KBSubcategory: BseService Additional reference words: 3.51 4.00

Keywords          : kbKernBase kbService kbGrpKernBase 
Version           : 3.51 4.00
Platform          : NT WINDOWS

Last Reviewed: December 18, 1996