Export (0) Print
Expand All

ServiceController.GetDevices Method

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.

ExceptionCondition
Win32Exception

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

.NET Framework

Supported in: 4.6, 4.5, 4, 3.5, 3.0, 2.0, 1.1

.NET Framework Client Profile

Supported in: 4, 3.5 SP1
Show:
© 2015 Microsoft