Lista rekordów usługi
Ponieważ każdy wpis usługi jest odczytywany z bazy danych zainstalowanych usług, program SCM tworzy rekord usługi dla usługi. Rekord usługi obejmuje:
- Nazwa usługi
- Typ uruchamiania (uruchamianie automatyczne lub uruchamianie na żądanie)
- Stan usługi (zobacz strukturę SERVICE_STATUS)
- Typ
Bieżący stan
Dopuszczalne kody kontrolne
Kod zakończenia
Wskazówka dotycząca oczekiwania - Wskaźnik do listy zależności
Nazwa użytkownika i hasło konta są określane w momencie instalacji usługi. Program SCM przechowuje nazwę użytkownika w rejestrze i hasło w bezpiecznej części urzędu zabezpieczeń lokalnych (LSA). Administrator systemu może tworzyć konta z hasłami, które nigdy nie wygasają. Alternatywnie administrator systemu może tworzyć konta z hasłami, które wygasają i zarządzają kontami, zmieniając hasła okresowo.
Program SCM przechowuje dwie kopie hasła konta użytkownika, bieżące hasło i hasło kopii zapasowej. Hasło określone podczas pierwszego instalowania usługi jest przechowywane jako bieżące hasło, a hasło kopii zapasowej nie jest inicjowane. Gdy program SCM próbuje uruchomić usługę w kontekście zabezpieczeń konta użytkownika, używa bieżącego hasła. Jeśli bieżące hasło zostanie pomyślnie użyte, zostanie również zapisane jako hasło kopii zapasowej. Jeśli hasło zostanie zmodyfikowane za pomocą funkcji ChangeServiceConfig lub narzędzia Panelu sterowania usług, nowe hasło jest przechowywane jako bieżące hasło, a poprzednie hasło jest przechowywane jako hasło kopii zapasowej. Jeśli program SCM spróbuje uruchomić usługę, a bieżące hasło zakończy się niepowodzeniem, użyje hasła kopii zapasowej. Jeśli hasło kopii zapasowej zostanie pomyślnie użyte, zostanie zapisane jako bieżące hasło.
SCM aktualizuje stan usługi, gdy usługa wysyła powiadomienia o stanie przy użyciu funkcji SetServiceStatus. Program SCM utrzymuje stan usługi sterownika, wysyłając zapytanie do systemu we/wy, zamiast otrzymywać powiadomienia o stanie, tak jak w przypadku usługi.
Usługa może zarejestrować dodatkowe informacje o typie, wywołując funkcję SetServiceBits. Funkcje NetServerGetInfo i NetServerE num uzyskują obsługiwane typy usług.