Information
The topic you requested is included in another documentation set. For convenience, it's displayed below. Choose Switch to see the topic in its original location.

ServiceType Enumeration

Represents the type of the service.

This enumeration has a FlagsAttribute attribute that allows a bitwise combination of its member values.

[Visual Basic]
<Flags>
<Serializable>
Public Enum ServiceType
[C#]
[Flags]
[Serializable]
public enum ServiceType
[C++]
[Flags]
[Serializable]
__value public enum ServiceType
[JScript]
public
   Flags
 Serializable
enum ServiceType

Remarks

The service type indicates how the service is used by the system. The ServiceController that passes commands to the service stores a value for the service type.

The value of a ServiceType instance represents a set of flags combined using the bitwise OR operator.

The creation of interactive services is not supported. To workaround this, you can create a non-interactive service and a separate control GUI application that communicates with the service using sockets or remoting. For code samples on remoting, see Remoting Examples.

Members

Member name Description Value
Adapter A service for a hardware device that requires its own driver. 4
FileSystemDriver A file system driver, which is also a Kernel device driver. 2
InteractiveProcess A service that can communicate with the desktop. 256
KernelDriver A Kernel device driver such as a hard disk or other low-level hardware device driver. 1
RecognizerDriver A file system driver used during startup to determine the file systems present on the system. 8
Win32OwnProcess A Win32 program that can be started by the Service Controller and that obeys the service control protocol. This type of Win32 service runs in a process by itself. 16
Win32ShareProcess A Win32 service that can share a process with other Win32 services. 32

Example

[Visual Basic, C#, C++] The following example uses the ServiceController class to display the device driver services on the local computer.

[Visual Basic] 

         Dim scDevices() As ServiceController
         scDevices = ServiceController.GetDevices()

         Dim numAdapter As Integer
         Dim numFileSystem As Integer
         Dim numKernel As Integer
         Dim numRecognizer As Integer
         
         ' Display the list of device driver services.
         Console.WriteLine("Device driver services on the local computer:")
         
         Dim scTemp As ServiceController
         For Each scTemp In  scDevices
            ' Display the status and the service name, for example,
            '   [Running] PCI Bus Driver
            '             Type = KernelDriver

            Console.WriteLine(" [{0}] {1}", scTemp.Status, scTemp.DisplayName)
            Console.WriteLine("           Type = {0}", scTemp.ServiceType)

            ' Update counters using the service type bit flags.
            If (scTemp.ServiceType And ServiceType.Adapter) <> 0 Then
               numAdapter = numAdapter + 1
            End If
            If (scTemp.ServiceType And ServiceType.FileSystemDriver) <> 0 Then
               numFileSystem = numFileSystem + 1
            End If
            If (scTemp.ServiceType And ServiceType.KernelDriver) <> 0 Then
               numKernel = numKernel + 1
            End If
            If (scTemp.ServiceType And ServiceType.RecognizerDriver) <> 0 Then
               numRecognizer = numRecognizer + 1
            End If

         Next scTemp

         Console.WriteLine()
         Console.WriteLine("Total of {0} device driver services", scDevices.Length)
         Console.WriteLine("  {0} are adapter drivers", numAdapter)
         Console.WriteLine("  {0} are file system drivers", numFileSystem)
         Console.WriteLine("  {0} are kernel drivers", numKernel)
         Console.WriteLine("  {0} are file system recognizer drivers", numRecognizer)


[C#] 
ServiceController[] scDevices;
scDevices = ServiceController.GetDevices();

int numAdapter = 0,
    numFileSystem = 0, 
    numKernel = 0, 
    numRecognizer = 0;
       
// Display the list of device driver services.
Console.WriteLine("Device driver services on the local computer:");

foreach (ServiceController scTemp in scDevices)
{
   // Display the status and the service name, for example,
   //   [Running] PCI Bus Driver
   //             Type = KernelDriver

   Console.WriteLine(" [{0}] {1}", 
                     scTemp.Status, scTemp.DisplayName);
   Console.WriteLine("           Type = {0}", scTemp.ServiceType); 

   // Update counters using the service type bit flags.
   if ((scTemp.ServiceType & ServiceType.Adapter) != 0)
   {
      numAdapter++;
   } 
   if ((scTemp.ServiceType & ServiceType.FileSystemDriver) != 0)
   {
      numFileSystem++;
   }  
   if ((scTemp.ServiceType & ServiceType.KernelDriver) != 0)
   {
      numKernel++;
   } 
   if ((scTemp.ServiceType & ServiceType.RecognizerDriver) != 0)
   {
      numRecognizer++;
   }

}

Console.WriteLine();
Console.WriteLine("Total of {0} device driver services", scDevices.Length);
Console.WriteLine("  {0} are adapter drivers", numAdapter);
Console.WriteLine("  {0} are file system drivers", numFileSystem);
Console.WriteLine("  {0} are kernel drivers", numKernel);
Console.WriteLine("  {0} are file system recognizer drivers", numRecognizer);


[C++] 
ServiceController * scDevices[] = ServiceController::GetDevices();

if (scDevices->Length)
{

   int numAdapter = 0,
       numFileSystem = 0, 
       numKernel = 0, 
       numRecognizer = 0;
       
   // Display the list of device driver services.
   Console::WriteLine("Device driver services on the local computer:");

   for (int i=0; i < scDevices->Length; i++)
   {
      ServiceController *scTemp = scDevices[i];
      // Display the status and the service name, for example,
      //   [Running] PCI Bus Driver
      //             Type = KernelDriver

      if (scTemp)
      {
         Console::WriteLine(" [{0}] {1}", 
                           __box(scTemp->Status), scTemp->DisplayName);
         Console::WriteLine("           Type = {0}", __box(scTemp->ServiceType)); 
      
         // Update counters using the service type bit flags.
         if ((scTemp->ServiceType & ServiceType::Adapter) != 0)
         {
            numAdapter++;
         }  
         if ((scTemp->ServiceType & ServiceType::FileSystemDriver) != 0)
         {
            numFileSystem++;
         }  
         if ((scTemp->ServiceType & ServiceType::KernelDriver) != 0)
         {
            numKernel++;
         } 
         if ((scTemp->ServiceType & ServiceType::RecognizerDriver) != 0)
         {
            numRecognizer++;
         }
      }
   
   }

   Console::WriteLine();
   Console::WriteLine("Total of {0} device driver services", scDevices->Length.ToString());
   Console::WriteLine("  {0} are adapter drivers", numAdapter.ToString());
   Console::WriteLine("  {0} are file system drivers", numFileSystem.ToString());
   Console::WriteLine("  {0} are kernel drivers", numKernel.ToString());
   Console::WriteLine("  {0} are file system recognizer drivers", numRecognizer.ToString());

[JScript] No example is available for JScript. To view a Visual Basic, C#, or C++ example, click the Language Filter button Language Filter in the upper-left corner of the page.

Requirements

Namespace: System.ServiceProcess

Platforms: Windows NT Server 4.0, Windows NT Workstation 4.0, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 family

Assembly: System.Serviceprocess (in System.Serviceprocess.dll)

See Also

System.ServiceProcess Namespace | ServiceController.ServiceType | ServiceController

Was this page helpful?
(1500 characters remaining)
Thank you for your feedback
Show:
© 2014 Microsoft