Programy usług
Program usługi zawiera kod wykonywalny dla co najmniej jednej usługi. Program usługi utworzony z typem SERVICE_WIN32_OWN_PROCESS zawiera kod tylko dla jednej usługi. Program usługi utworzony przy użyciu typu SERVICE_WIN32_SHARE_PROCESS zawiera kod dla więcej niż jednej usługi, umożliwiając im udostępnianie kodu. Przykładem programu usługi, który to robi, jest ogólny proces hosta usługi, Svchost.exe, który hostuje wewnętrzne usługi systemu Windows. Należy pamiętać, że Svchost.exe jest zarezerwowana do użytku przez system operacyjny i nie powinna być używana przez usługi innych niż Windows. Zamiast tego deweloperzy powinni zaimplementować własne programy hostingu usług.
Program usługi można skonfigurować do wykonywania w kontekście konta użytkownika z wbudowanej (lokalnej), podstawowej lub zaufanej domeny. Można go również skonfigurować do uruchamiania na specjalnym koncie użytkownika usługi .
W poniższych tematach opisano wymagania interfejsu menedżera kontroli usług (SCM), które program usługi musi zawierać:
- punktu wejścia usługi
- ServiceMain, funkcja
- Service Control Handler
Te tematy nie dotyczą usług sterowników. Aby uzyskać informacje o wymaganiach dotyczących interfejsu usług sterowników, zobacz Zestaw sterowników systemu Windows (WDK).
Usługa działa jako proces w tle, który może mieć wpływ na wydajność systemu, czas odpowiedzi, efektywność energetyczną i zabezpieczenia. Aby uzyskać wskazówki dotyczące optymalizacji usług, zobacz Opracowywanie wydajnych procesów w tle dla systemu Windows. W poniższych tematach opisano dodatkowe zagadnienia dotyczące programowania:
- przejścia stanu usługi
- odbierania zdarzeń w usłudze
- usług wielowątkowych
- usługi i rejestru
- usługi i przekierowane dyski
- zdarzeń wyzwalacza usługi
Należy pamiętać, że jeśli program usługi działa jako serwer RPC, powinien używać dynamicznych punktów końcowych i wzajemnego uwierzytelniania.