Zmiany usługi dla systemu Windows Vista
Wprowadzono znaczące zmiany w modelu usług w celu poprawy wydajności, niezawodności, zabezpieczeń, zarządzania i administrowania usługami.
Poniższa tabela zawiera podsumowanie ulepszeń usług dla systemu Windows Vista.
Poprawa | Opis |
---|---|
opóźnione automatyczne uruchamianie |
Opóźnione usługi automatycznego uruchamiania są uruchamiane wkrótce po uruchomieniu systemu. Zwiększa to wydajność uruchamiania systemu, a jednocześnie zapewnia automatyczne uruchamianie tych usług. Aby ustawić flagę opóźnionego automatycznego uruchamiania, wywołaj funkcję ChangeServiceConfig2 za pomocą SERVICE_CONFIG_DELAYED_AUTO_START_INFO. |
wykrywanie i odzyskiwanie błędów |
Jeśli usługa ulegnie awarii, menedżer kontroli usług (SCM) może wykonać akcję niepowodzenia, taką jak ponowne uruchomienie usługi w celu odzyskania sprawności po tym błędzie. Aby skonfigurować akcję niepowodzenia, wywołaj ChangeServiceConfig2 za pomocą polecenia SERVICE_CONFIG_FAILURE_ACTIONS. |
powiadomienia przedshutdown |
Usługa może zarejestrować się w celu otrzymania powiadomienia SERVICE_CONTROL_PRESHUTDOWN w funkcji HandlerEx, zanim otrzyma rzeczywiste powiadomienie o zamknięciu. Zapewnia to usługom długotrwałą procedurę zamykania więcej czasu, aby bezpiecznie ją zamknąć. Aby ustawić wartość limitu czasu, wywołaj ChangeServiceConfig2 za pomocą SERVICE_CONFIG_PRESHUTDOWN_INFO. |
ograniczony dostęp sieciowy |
Za pomocą identyfikatorów SID usługi można ograniczyć dostęp do portów, protokołów lub kierunku ruchu sieciowego. Aby ograniczyć dostęp usługi do sieci, użyj interfejsu INetFwServiceRestriction. |
uruchomione z najniższymi uprawnieniami |
Usługi mogą działać na dowolnym koncie, które zawiera wymagane uprawnienia (LocalService, NetworkService, LocalSystem, konto domeny lub konto lokalne) i wskazać wymagane uprawnienia, wywołując ChangeServiceConfig2 z SERVICE_CONFIG_REQUIRED_PRIVILEGES_INFO. Narzędzie SCM usuwa wszystkie uprawnienia, które nie są wymagane. |
Izolacja usługi |
Usługa może izolować obiekty, takie jak pliki lub klucze rejestru, do wyłącznego użytku, zabezpieczając je wpisem kontroli dostępu, który zawiera identyfikator SID usługi. Po przypisaniu tego identyfikatora SID do usługi właściciel usługi może zmodyfikować listy kontroli dostępu obiektów w celu udzielenia dostępu do identyfikatora SID. Dzięki temu usługa może uzyskiwać dostęp do określonych obiektów bez uruchamiania na koncie o wysokim poziomie uprawnień lub obniżaniu zabezpieczeń obiektów. Aby ustawić identyfikator SID usługi, wywołaj ChangeServiceConfig2 za pomocą SERVICE_CONFIG_SERVICE_SID_INFO. |
powiadomienia o zmianie stanu usługi |
Usługi można zarejestrować, aby otrzymywać powiadomienia o utworzeniu, usunięciu lub zmianie stanu usługi przy użyciu funkcji NotifyServiceStatusChange. Jest to bardziej wydajne niż wywoływanie funkcji QueryServiceStatusEx w pętli w celu sondowania stanu. |
izolacja sesji 0 |
Usługi zawsze działają w sesji 0. Przed systemem Windows Vista pierwszy użytkownik do logowania został również przypisany do sesji 0. Teraz sesja 0 jest zarezerwowana wyłącznie dla usług i innych aplikacji, które nie są skojarzone z interakcyjną sesją użytkownika. (Pierwszy użytkownik do logowania jest połączony z sesją 1, drugi użytkownik do logowania jest połączony z sesją 2 itd.). Sesja 0 nie obsługuje procesów, które współdziałają z użytkownikiem. Ta zmiana oznacza, że usługa nie może opublikować ani wysłać komunikatu do aplikacji, a aplikacja nie może wysłać ani opublikować komunikatu w usłudze. Ponadto usługi nie mogą bezpośrednio wyświetlać elementu interfejsu użytkownika, takiego jak okno dialogowe. Usługa może używać funkcji WTSSendMessage do wyświetlania okna dialogowego w innej sesji. |