Monitoring a service works for:
•Native services
•.Net services
•Mixed mode services.
Native Services
If you are working with native services you must use the NT Service API in your service as well as using the Monitor a service method below.
.Net Services
Coverage Validator won't attach until some .Net code is executed.
If there is native code being called prior to the .Net code, Coverage Validator won't monitor that code, only the native code called after the first .Net code that is called.
To monitor any native code called prior to your .Net code, use the NT Service API.
Mixed Mode .Net Services
You don't need to use the NT Services API.
If you are working with a .Net service that loads native DLLs, or a mixed mode service, Coverage Validator will recognize the service when the .Net runtime starts executing the .Net service main.
 When working with Coverage Validator and services, you still start the service the way you normally do - e.g. with the service control manager. 
The code that you have embedded into your service then contacts Coverage Validator, which you should have running before starting the service.
To start monitoring a service:
 Launch menu 
 Services 
 Monitor a service... 
 shows the Monitor a service dialog below 
Or use the shortcut
 
  Monitor a service
First ensure the service is installed, but not running.
Set the service to monitor, choose whether to start collecting data right away, and click OK.

•Service to monitor 
 type or Browse to set the service name to monitor 
•OK 
 waits for the service to start before injecting into it 
Start the service in the normal manner, e.g. from the control panel, the command line or programmatically.
•Type of data collection 
 Are you only interested in Native data, .Net data or both Native data and .Net data? 
•Native Only 
 Ignore all .Net data in the target application. 
•.Net Only 
 Ignore all Native data in the target application. 
•Mixed Mode 
 Collect both Native and .Net data from the target application 
This setting cannot be changed after the application is launched
•Collect data from application 
 If it's the startup procedure you want to validate, obviously start collecting data from launch. 
Depending on your application, and what you want to validate, you may want to start collecting data as soon as injection has happened, or do it later.
If your program has a complex start-up procedure, initialising lots of data, it may be much faster not to collect data until the program has launched.
If it's the startup procedure you want to validate, obviously start collecting data immediately.
See the section on controlling data collection for how to turn collection on and off after launch. 
The data collection option may be disabled because of the instrumentation mode that is selected.
Example demonstrating how to monitor a service.
Example demonstrating how to monitor an application launched from a service (how to monitor any application running on a service account).