ServiceType ServiceType ServiceType ServiceType Enum

Определение

Представляет тип службы.Represents the type of the service.

Это перечисление имеет атрибут FlagsAttribute, который разрешает побитовое сочетание значений его элементов.

public enum class ServiceType
[System.Flags]
public enum ServiceType
type ServiceType = 
Public Enum ServiceType
Наследование
Атрибуты

Поля

Adapter Adapter Adapter Adapter 4

Служба для устройства, требующего собственного драйвера.A service for a hardware device that requires its own driver.

FileSystemDriver FileSystemDriver FileSystemDriver FileSystemDriver 2

Драйвер файловой системы, который является и драйвером устройства ядра.A file system driver, which is also a Kernel device driver.

InteractiveProcess InteractiveProcess InteractiveProcess InteractiveProcess 256

Служба, взаимодействующая с рабочим столом.A service that can communicate with the desktop.

KernelDriver KernelDriver KernelDriver KernelDriver 1

Драйвер устройства ядра, например, жесткого диска, или другой драйвер устройства нижнего уровня.A Kernel device driver such as a hard disk or other low-level hardware device driver.

RecognizerDriver RecognizerDriver RecognizerDriver RecognizerDriver 8

Драйвер файловой системы, используемый при запуске системы для определения ее файловых систем.A file system driver used during startup to determine the file systems present on the system.

Win32OwnProcess Win32OwnProcess Win32OwnProcess Win32OwnProcess 16

Программа Win32, которая запускается контролером служб и подчиняется протоколу управления службами.A Win32 program that can be started by the Service Controller and that obeys the service control protocol. Этот тип службы Win32 запускается самостоятельно.This type of Win32 service runs in a process by itself.

Win32ShareProcess Win32ShareProcess Win32ShareProcess Win32ShareProcess 32

Служба Win32, которая может работать совместно с другими службами Win32.A Win32 service that can share a process with other Win32 services.

Примеры

В следующем примере используется ServiceController для отображения службы драйверов устройств на локальном компьютере.The following example uses the ServiceController class to display the device driver services on the local computer.

array<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 each (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) != (ServiceType)0 )
      {
         numAdapter++;
      }
      if ( (scTemp->ServiceType & ServiceType::FileSystemDriver) != (ServiceType)0 )
      {
         numFileSystem++;
      }
      if ( (scTemp->ServiceType & ServiceType::KernelDriver) != (ServiceType)0 )
      {
         numKernel++;
      }
      if ( (scTemp->ServiceType & ServiceType::RecognizerDriver) != (ServiceType)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() );
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);


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)

Комментарии

Тип службы указывает, как служба используется системой.The service type indicates how the service is used by the system. ServiceController , Передающий команды эта служба хранит значение для типа службы.The ServiceController that passes commands to the service stores a value for the service type.

Значение экземпляра ServiceType представляет набор флагов, связанных с помощью битового оператора или.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.

Применяется к

Дополнительно