Delen via


Lijst met servicerecords

Omdat elke servicevermelding wordt gelezen uit de database met geïnstalleerde services, maakt de SCM een servicerecord voor de service. Een servicerecord omvat:

  • Servicenaam
  • Begintype (automatisch starten of vraag-starten)
  • Servicestatus (zie de SERVICE_STATUS structuur)
    Type
    Huidige status
    Acceptabele besturingscodes
    Afsluitcode
    Hint voor wachten
  • Aanwijzer naar afhankelijkheidslijst

De gebruikersnaam en het wachtwoord van een account worden opgegeven op het moment dat de service is geïnstalleerd. De SCM slaat de gebruikersnaam op in het register en het wachtwoord in een beveiligd gedeelte van de LSA (Local Security Authority). De systeembeheerder kan accounts maken met wachtwoorden die nooit verlopen. De systeembeheerder kan ook accounts maken met wachtwoorden die verlopen en de accounts beheren door de wachtwoorden periodiek te wijzigen.

De SCM bewaart twee kopieën van het wachtwoord van een gebruikersaccount, een huidig wachtwoord en een back-upwachtwoord. Het wachtwoord dat is opgegeven wanneer de service voor het eerst wordt geïnstalleerd, wordt opgeslagen als het huidige wachtwoord en het back-upwachtwoord wordt niet geïnitialiseerd. Wanneer de SCM de service probeert uit te voeren in de beveiligingscontext van het gebruikersaccount, wordt het huidige wachtwoord gebruikt. Als het huidige wachtwoord wordt gebruikt, wordt het ook opgeslagen als het back-upwachtwoord. Als het wachtwoord wordt gewijzigd met de functie ChangeServiceConfig of het configuratiescherm van Services, wordt het nieuwe wachtwoord opgeslagen als het huidige wachtwoord en wordt het vorige wachtwoord opgeslagen als het back-upwachtwoord. Als de SCM probeert de service te starten en het huidige wachtwoord mislukt, wordt het back-upwachtwoord gebruikt. Als het back-upwachtwoord is gebruikt, wordt het opgeslagen als het huidige wachtwoord.

De SCM werkt de servicestatus bij wanneer een service statusmeldingen verzendt met behulp van de SetServiceStatus functie. De SCM onderhoudt de status van een stuurprogrammaservice door een query uit te voeren op het I/O-systeem in plaats van statusmeldingen te ontvangen, net zoals bij een service.

Een service kan aanvullende typegegevens registreren door de functie SetServiceBits aan te roepen. De functies NetServerGetInfo en NetServerEnum verkrijgen de ondersteunde servicetypen.