Cette documentation est archivée et n’est pas conservée.

ServiceType, énumération

Représente le type du service.

Cette énumération possède un attribut FlagsAttribute qui permet la combinaison d'opérations de bits de ses valeurs membres.

Espace de noms : System.ServiceProcess
Assembly : System.ServiceProcess (dans system.serviceprocess.dll)

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

 Nom de membreDescription
AdapterService d'un périphérique matériel qui requiert son propre pilote. 
FileSystemDriverPilote de système de fichiers, qui est également un pilote de périphérique de noyau. 
InteractiveProcessService qui peut communiquer avec le bureau. 
KernelDriverPilote de périphérique de noyau, tel qu'un disque dur, ou tout autre pilote de périphérique matériel de bas niveau. 
RecognizerDriverPilote de système de fichiers utilisé au démarrage pour identifier les systèmes de fichiers présents sur le système. 
Win32OwnProcessProgramme Win32 qui peut être démarré par le Contrôleur de services et qui obéit au protocole de contrôle des services. Ce type de service Win32 s'exécute de lui-même dans un processus. 
Win32ShareProcessService Win32 qui peut partager un processus avec d'autres services Win32. 

Le type de service indique la façon dont le service est utilisé par le système. Le ServiceController qui passe des commandes au service stocke une valeur pour le type de service.

La valeur d'une instance ServiceType représente un ensemble d'indicateurs combinés à l'aide de l'opérateur de bits OR.

La création de services interactifs n'est pas prise en charge. Pour pallier le problème, vous pouvez créer un service non interactif et une application GUI de contrôle distincte qui communique avec le service par l'intermédiaire de sockets ou de services d'accès distant. Pour des exemples de code sur les services d'accès distant, consultez Exemples d'accès distant.

L'exemple suivant utilise la classe ServiceController pour afficher les services de pilotes de périphériques sur l'ordinateur local.

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


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 Édition Media Center, Windows XP Professionnel Édition x64, Windows XP SP2, Windows XP Starter Edition

Le .NET Framework ne prend pas en charge toutes les versions de chaque plate-forme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise.

.NET Framework

Prise en charge dans : 2.0, 1.1, 1.0
Afficher: