ServiceType-Enumeration
Stellt den Typ des Dienstes dar.
Diese Enumeration verfügt über ein FlagsAttribute -Attribut, das die bitweise Kombination der Memberwerte zulässt.
Namespace: System.ServiceProcess
Assembly: System.ServiceProcess (in system.serviceprocess.dll)
Syntax
'Declaration
<FlagsAttribute> _
Public Enumeration ServiceType
'Usage
Dim instance As ServiceType
[FlagsAttribute]
public enum ServiceType
[FlagsAttribute]
public enum class ServiceType
/** @attribute FlagsAttribute() */
public enum ServiceType
FlagsAttribute
public enum ServiceType
Member
Membername | Beschreibung | |
---|---|---|
Adapter | Der Dienst für ein Hardwaregerät, das einen eigenen Treiber benötigt. | |
FileSystemDriver | Ein Dateisystemtreiber, der außerdem ein Gerätetreiber des Kernels ist. | |
InteractiveProcess | Ein Dienst, der mit dem Desktop kommunizieren kann. | |
KernelDriver | Ein Gerätetreiber im Kernel, z. B. ein Festplattentreiber oder ein Treiber für andere Low-Level-Hardwaregeräte. | |
RecognizerDriver | Ein Dateisystemtreiber, der während des Systemstarts den Typ des vom System verwendeten Dateisystems ermittelt. | |
Win32OwnProcess | Ein Win32-Programm, das von der Dienststeuerung gestartet werden kann und das Dienststeuerungsprotokoll verwendet. Ein derartiger Win32-Dienst wird in einem eigenen Prozess ausgeführt. | |
Win32ShareProcess | Ein Win32-Dienst, der sich einen Prozess mit anderen Win32-Diensten teilen kann. |
Hinweise
Der Diensttyp gibt an, auf welche Weise der Dienst vom System verwendet wird. Der ServiceController, der Befehle an den Dienst übergibt, speichert einen Wert für den Diensttyp.
Der Wert einer ServiceType-Instanz stellt eine Gruppe von Flags dar, die über eine bitweise OR-Operation verknüpft sind.
Die Erstellung interaktiver Dienste wird nicht unterstützt. Um dieses Problem zu umgehen, können Sie einen nicht interaktiven Dienst und eine separat gesteuerte grafische Benutzeroberflächenanwendung erstellen, die mit dem Dienst über Sockets oder Remoting kommuniziert. Codebeispiele für Remoting finden Sie unter Remotingbeispiele.
Beispiel
Im folgenden Beispiel werden die Gerätetreiberdienste mithilfe der ServiceController-Klasse auf dem lokalen Computer angezeigt.
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)
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);
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;
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));
Plattformen
Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.
Versionsinformationen
.NET Framework
Unterstützt in: 2.0, 1.1, 1.0
Siehe auch
Referenz
System.ServiceProcess-Namespace
ServiceController.ServiceType-Eigenschaft
ServiceController-Klasse