Leggi in inglese

Condividi tramite


ServiceType Enumerazione

Definizione

Rappresenta il tipo del servizio.

Questa enumerazione supporta una combinazione bit per bit dei rispettivi valori dei membri.

C#
[System.Flags]
public enum ServiceType
Ereditarietà
ServiceType
Attributi

Campi

Nome Valore Descrizione
Adapter 4

Servizio per un dispositivo hardware che richiede un apposito driver.

FileSystemDriver 2

Driver del file system, che è anche un driver di dispositivo Kernel.

InteractiveProcess 256

Servizio in grado di comunicare con il desktop.

KernelDriver 1

Driver di dispositivo Kernel, ad esempio il driver del disco rigido o di un altro dispositivo di basso livello.

RecognizerDriver 8

Driver di file system usato durante l'avvio per determinare i file system presenti nel sistema.

Win32OwnProcess 16

Programma Win32 che può essere avviato dal controller del servizio e che rispetta il protocollo di controllo del servizio. Questo tipo di servizio Win32 viene eseguito in un processo da solo.

Win32ShareProcess 32

Servizio Win32 che può condividere un processo con altri servizi Win32.

Esempio

Nell'esempio seguente viene usata la ServiceController classe per visualizzare i servizi driver di dispositivo nel computer locale.

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

Commenti

Il tipo di servizio indica come viene usato dal sistema. Oggetto ServiceController che passa i comandi al servizio archivia un valore per il tipo di servizio.

Il valore di un'istanza di ServiceType rappresenta un set di flag combinati usando l'operatore OR bit per bit.

La creazione di servizi interattivi non è supportata. Per risolvere questo problema, è possibile creare un servizio non interattivo e un'applicazione GUI di controllo separata che comunica con il servizio usando socket o comunicazione remota.

Si applica a

Prodotto Versioni
.NET Core 1.0, Core 1.1, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0

Vedi anche