ServiceController.GetDevices Method ()


The .NET API Reference documentation has a new home. Visit the .NET API Browser on to see the new experience.

Retrieves the device driver services on the local computer.

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

public static ServiceController[] GetDevices()

Return Value

Type: System.ServiceProcess.ServiceController[]

An array of type ServiceController in which each element is associated with a device driver service on the local computer.

Exception Condition

An error occurred when accessing a system API.

GetDevices returns only the device driver services from the local computer. To retrieve the non-device driver services or services that are not drivers, call the GetServices method. Together, the two methods provide access to all the services on a computer.

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

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)
   if ((scTemp.ServiceType & ServiceType.FileSystemDriver) != 0)
   if ((scTemp.ServiceType & ServiceType.KernelDriver) != 0)
   if ((scTemp.ServiceType & ServiceType.RecognizerDriver) != 0)


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);

.NET Framework
Available since 1.1
Return to top