Export (0) Print
Expand All

ServiceType Enumeration

Represents the type of the service.

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

Namespace: System.ServiceProcess
Assembly: System.ServiceProcess (in system.serviceprocess.dll)

'Declaration
<FlagsAttribute> _
Public Enumeration ServiceType
'Usage
Dim instance As ServiceType

/** @attribute FlagsAttribute() */ 
public enum ServiceType
FlagsAttribute 
public enum ServiceType

 Member nameDescription
AdapterA service for a hardware device that requires its own driver. 
FileSystemDriverA file system driver, which is also a Kernel device driver. 
InteractiveProcessA service that can communicate with the desktop. 
KernelDriverA Kernel device driver such as a hard disk or other low-level hardware device driver. 
RecognizerDriverA file system driver used during startup to determine the file systems present on the system. 
Win32OwnProcessA 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. 
Win32ShareProcessA Win32 service that can share a process with other Win32 services. 

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.

The following example uses the ServiceController class to display the device driver services on the local computer.


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)


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

int numAdapter = 0;
int numFileSystem = 0;
int numKernel = 0;
int numRecognizer = 0;
// Display the list of device driver services.
Console.WriteLine("Device driver services on the local computer:");
ServiceController scTemp = null;
for (int iCtr = 0; iCtr < scDevices.get_Length(); iCtr++) {
    // Display the status and the service name, for example,
    // [Running] PCI Bus Driver
    // Type = KernelDriver
    scTemp = scDevices[iCtr];

    Console.WriteLine(" [{0}] {1}", scTemp.get_Status(), 
        scTemp.get_DisplayName());
    Console.WriteLine("           Type = {0}", 
        scTemp.get_ServiceType());
    // Update counters using the service type bit flags.
    if (System.Convert.ToInt32(scTemp.get_ServiceType() &
        ServiceType.Adapter) != 0) {
        numAdapter++;
    }
    if ((System.Convert.ToInt32(scTemp.get_ServiceType() & 
        ServiceType.FileSystemDriver)) != 0) {
        numFileSystem++;
    }
    if (System.Convert.ToInt32((scTemp.get_ServiceType() & 
        ServiceType.KernelDriver)) != 0) {
        numKernel++;
    }
    if (System.Convert.ToInt32((scTemp.get_ServiceType() & 
        ServiceType.RecognizerDriver)) != 0) {
        numRecognizer++;
    }
}

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

Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see System Requirements.

.NET Framework

Supported in: 2.0, 1.1, 1.0

Community Additions

ADD
Show:
© 2014 Microsoft