Features of New SCM (Service Control Manager)
Prior to Windows Vista and Windows Server 2008, the only way for a client to determine whether a service had changed its status, or been created or deleted, was to use the service query
Application Programming Interface (API),
QueryServiceStatusEx function, and poll the status of the service. Having to constantly poll for changed status was not efficient. Windows Vista introduced a new API,
NotifyServiceStatusChange, which allows the SCM to notify registered clients when a specific service changes status. This means that applications that monitor services can now receive notifications when services change status, making it far easier to write management tools.
Services can also register to get
preshutdown notifications to give them a longer time to prepare for a system shutdown. And shutdown can take into account each service’s dependencies and shut them down (if configured) in a more orderly manner.
SCM was also enhanced to detect and recover from nonfatal errors better. In early versions of Windows, it took a complete crash of the service to kick off a recovery event. Now, memory leaks, slow processing, and other issues can initiate a recovery event.
Microsoft has spent significant effort to make Windows services more secure. While no software as complex as Windows will ever be without security bugs, Windows Vista has already proven to be more resistant to newly announced security vulnerabilities. We should expect Windows Server 2008 to be similarly more resilient.