The Service Control Manager
When an application runs as a service of Windows NT Server, the Service
Control Manager is usually called to find its main function when it
starts, to provide its messaging interface, and to tear it down
gracefully when it ends.
-- BackOffice Programmer's Reference: Developing Exchange
Server Applications
- Manages and operates on the basis of the services database
- Currently implemented as registry keys
(HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services)
- There are a number of standard keys, all of which are supposed
to be opaque to the user:
- Enum key
- Security key
- Parameters
- You can make your own, but be aware that removing the service
deletes ALL subkeys, not just the standard ones
- You can modify keys here, but the API is safer
- Contains information about:
- Executable properties
- Startup type
- Startup security
- Events accepted
- Hardware profiles
- It has an RPC interface, like all good NT facilities
- It doesn't really do much, until it is asked to
- Accepts requests to install/remove services
- Logon information
- Dependencies
- Friendly names
- Maintains its database
- Launches services at startup or on demand
- Forwards stop, pause, continue, and custom messages on to
service event handlers
- Handles requests for the status of individual services
- SCM trivia
- How come it says "attempting to start, pause, stop, etc?"
- Just passes messages to handler-- it's up to
the handler to obey them
- How come it won't let you install and remove
services?
- For the same reason you have to reboot all the time
This page is maintained by Peyton Engel.
Last modified 25 May 1999