Configuring Services.exe to Load a Standalone Service
A version of this page is also available for
4/8/2010
By default, all service DLLs are loaded into the same copy of Services.exe that is started on device initialization. In certain cases it may be preferable to isolate a service by having a new copy of Services.exe created explicitly for it. The main reason for isolating a service is to ensure that it will not corrupt other services.
Isolating a service is useful for debugging because locating a corruption in a process with only one service running is easier than trying to find a problem with multiple services running concurrently. Running a standalone services also provides increased reliability.
For Windows CE .NET 4.2 and later you can configure Services.exe to load a service into a separate copy of Services.exe by setting the service's context flag in the registry.
To configure Services.exe to load a service in standalone mode
Under the HKEY_LOCAL_MACHINE\Services\<Service Name> registry key for your service, set the Context value of type REG_DWORD to SERVICE_INIT_STANDALONE (0x02). The following example shows the registry settings for a service named "MyService":
HKEY_LOCAL_MACHINE\Services\MyService\Context=dword:0x00000002
Services.exe will pass the context flags to the service's xxx_Init (Services.exe) function in the dwData parameter. If the service does not support running in standalone mode, xxx_Init should return FALSE if the SERVICE_INIT_STANDALONE flag is passed on startup.
See Also
Reference
Concepts
Shutting down a Standalone Service
Limitations to Standalone Services