ServiceType Enum
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Vertegenwoordigt het type service.
Deze opsomming ondersteunt een bitsgewijze combinatie van de waarden van de leden.
public enum class ServiceType
[System.Flags]
public enum ServiceType
[<System.Flags>]
type ServiceType =
Public Enum ServiceType
- Overname
- Kenmerken
Velden
| Name | Waarde | Description |
|---|---|---|
| KernelDriver | 1 | Een kernelapparaatstuurprogramma, zoals een harde schijf of een ander hardwareapparaatstuurprogramma op laag niveau. |
| FileSystemDriver | 2 | Een bestandssysteemstuurprogramma, dat ook een kernelapparaatstuurprogramma is. |
| Adapter | 4 | Een service voor een hardwareapparaat waarvoor een eigen stuurprogramma is vereist. |
| RecognizerDriver | 8 | Een bestandssysteemstuurprogramma dat tijdens het opstarten wordt gebruikt om te bepalen welke bestandssystemen aanwezig zijn op het systeem. |
| Win32OwnProcess | 16 | Een Win32-programma dat kan worden gestart door de servicecontroller en dat voldoet aan het servicebeheerprotocol. Dit type Win32-service wordt zelf uitgevoerd in een proces. |
| Win32ShareProcess | 32 | Een Win32-service die een proces kan delen met andere Win32-services. |
| InteractiveProcess | 256 | Een service die kan communiceren met het bureaublad. |
Voorbeelden
In het volgende voorbeeld wordt de ServiceController klasse gebruikt om de apparaatstuurprogrammaservices op de lokale computer weer te geven.
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)
Opmerkingen
Het servicetype geeft aan hoe de service wordt gebruikt door het systeem. Met ServiceController de opdrachten die aan de service worden doorgegeven, wordt een waarde voor het servicetype opgeslagen.
De waarde van een ServiceType-exemplaar vertegenwoordigt een set vlaggen gecombineerd met behulp van de bitsgewijze OR-operator.
Het maken van interactieve services wordt niet ondersteund. Als tijdelijke oplossing kunt u een niet-interactieve service en een afzonderlijke beheer-GUI-toepassing maken die communiceert met de service met behulp van sockets of externe communicatie.