Part of what makes this a confusing question is that the word "services" is used in several distinct senses:
When you ask most people who work with NT to describe services, you'll get the generic, common understanding. This is good enough most of the time, it is based on generalities, and none of them apply to all services:
By starting automatically, a server application implemented as a service is guaranteed to be available so long as Windows NT Server is running. Moreover, related services can be started easily and, where appropriate, automatically.
Finally, implementing a server application as a service allows the application to be installed and controlled using standard user and Win32 APIs. Such a service can be started and stopped both locally and remotely, providing network administrators an easy and consistent way to control the service across the network.
--BackOffice Programmer's Reference: Developing Applications in the Microsoft BackOffice Environment
So let's offer a more precise definition: a Win32 service is really just a Win32 executable that has the following characteristics:
| Back (Introduction to NT Architecture) | Next (What are NT Services Used For?) |