Delen via


Het volledige servicevoorbeeld

De onderwerpen in deze sectie vormen een volledig servicevoorbeeld:

De service bouwen

In de volgende procedure wordt beschreven hoe u de service bouwt en de DLL van het gebeurtenisbericht registreert.

Om de service te bouwen en de DLL van het gebeurtenisbericht te registreren

  1. Bouw het dll-bestand van het bericht vanuit Sample.mc met behulp van de volgende stappen:

    1. mc -U sample.mc
    2. rc -r sample.rc
    3. koppeling -dll -noentry -out:sample.dll sample.res
  2. Bouw Svc.exe, SvcConfig.exeen SvcControl.exe uit respectievelijk Svc.cpp, SvcConfig.cpp en SvcControl.cpp.

  3. Maak de registersleutel HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\EventLog\Application\SvcName en voeg de volgende registerwaarden toe aan deze sleutel.

    Waarde Soort Beschrijving
    EventMessageFile = dll_path REG_SZ Het pad naar het dll-bestand met alleen resources dat tekenreeksen bevat die de service naar het gebeurtenislogboek kan schrijven.
    TypesSupported = 0x00000007 REG_DWORD Een bitmasker waarmee de ondersteunde gebeurtenistypen worden opgegeven. De waarde 0x000000007 geeft aan dat alle typen worden ondersteund.

     

De service testen

In de volgende procedure wordt beschreven hoe u de service test.

De dienst testen

  1. Start in het Configuratiescherm de Services-toepassing. (In de volgende stappen gebruikt u de F5-toets om de weergave te vernieuwen nadat u een opdracht hebt uitgevoerd waarmee de gegevens in de Services-toepassing worden gewijzigd.)

  2. Voer de volgende opdracht uit om de service te installeren:

    svc installeren

    De service schrijft 'De service is geïnstalleerd' naar de console als de bewerking is geslaagd of als er anders een foutbericht wordt weergegeven.

    Als de installatie van de service slaagt, wordt de service weergegeven in de Services toepassing. Houd er rekening mee dat Naam is ingesteld op 'SvcName', Beschrijving en Status leeg zijn en opstarttype is ingesteld op 'Handmatig'.

  3. Voer de volgende opdracht uit om de service te starten:

    svccontrol SvcName starten

    Als de bewerking is geslaagd, schrijft het servicebeheerprogramma 'Service starten in behandeling...' en vervolgens 'Service is succesvol gestart' naar de console. Anders schrijft het programma een foutbericht naar de console.

    Als de service is gestart, wordt Status ingesteld op 'Gestart'. De code in de functie ServiceMain wordt uitgevoerd door de SCM. Als er een fout optreedt, schrijft de service een foutbericht naar het gebeurtenislogboek. Dit bericht bevat de naam van de functie die is mislukt en de foutcode die is geretourneerd bij de fout.

  4. Voer de volgende opdracht uit om de servicebeschrijving bij te werken:

    svcconfig beschrijf SvcName

    Het serviceconfiguratieprogramma schrijft 'Servicebeschrijving succesvol bijgewerkt' naar de console als de bewerking slaagt, of anders een foutbericht.

    Als de update slaagt, Beschrijving is ingesteld op 'Dit is een testbeschrijving'.

  5. Voer de volgende opdracht uit om een query uit te voeren op de serviceconfiguratie:

    svcconfig-query SvcName

    Het serviceconfiguratieprogramma schrijft de serviceconfiguratiegegevens naar de console als de bewerking slaagt, of anders een foutmelding.

  6. Voer de volgende opdracht uit om de DACL van de service te wijzigen:

    svccontrol dacl SvcName-

    Het serviceconfiguratieprogramma schrijft 'Service DACL met succes bijgewerkt' naar de console als de bewerking slaagt, of anders een foutbericht.

  7. Voer de volgende opdracht uit om de service uit te schakelen:

    svcconfig SvcName uitschakelen

    Het serviceconfiguratieprogramma schrijft 'Service succesvol uitgeschakeld' naar de console als de bewerking slaagt of geeft anders een foutbericht weer.

    Als de service succesvol is uitgeschakeld, wordt het opstarttype ingesteld op 'Uitgeschakeld'.

  8. Voer de volgende opdracht uit om de service in te schakelen:

    svcconfig SvcName inschakelen

    Het serviceconfiguratieprogramma schrijft 'Service ingeschakeld' naar de console als de bewerking slaagt of als er anders een foutbericht wordt weergegeven.

    Als de service succesvol is ingeschakeld, wordt Opstarttype ingesteld op 'Handmatig'.

  9. Voer de volgende opdracht uit om de service te stoppen:

    svccontrol SvcName- stoppen

    Als de bewerking is geslaagd, schrijft het serviceprogramma 'Servicestop is in behandeling...' en vervolgens 'Service is succesvol gestopt' naar de console. Anders schrijft het programma een foutbericht naar de console.

    Als de service succesvol stopt, is status leeg.

    Als de service niet kan worden gestopt, schrijft het servicebeheerprogramma een foutbericht naar het gebeurtenislogboek met de naam van de functie die is mislukt en de foutcode die is geretourneerd bij een fout.

  10. Voer de volgende opdracht uit om de service te verwijderen:

    svcconfig SvcName verwijderen

    Het serviceconfiguratieprogramma schrijft 'De service is verwijderd' naar de console als de bewerking slaagt of als er anders een foutbericht wordt weergegeven.

    Als de service is verwijderd, wordt deze niet meer weergegeven in de Services toepassing. (Houd er rekening mee dat als u probeert een service te verwijderen die niet is gestopt, de bewerking slaagt, maar opstarttype is ingesteld op Uitgeschakeld en de servicevermelding wordt verwijderd bij het opnieuw opstarten van het systeem of wanneer de service wordt beëindigd met Taakbeheer.)

Services gebruiken