Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Aplikacje działające w systemach Windows Vista i Windows Server 2008 powinny być zgodne z tymi wytycznymi, aby upewnić się, że Menedżer ponownego uruchamiania może zamknąć i ponownie uruchomić aplikacje w razie potrzeby w celu zainstalowania aktualizacji. Usługi mogą korzystać z wytycznych opisanych w Guidelines for Services.
Menedżer ponownego uruchamiania wysyła zapytania do aplikacji gui do zamknięcia, wysyłając powiadomienie WM_QUERYENDSESSION, które ma parametr lParam ustawiony na ENDSESSION_CLOSEAPP (0x1). Aplikacje nie powinny być zamykane po otrzymaniu komunikatu WM_QUERYENDSESSION, ponieważ inna aplikacja może nie być gotowa do zamknięcia. Aplikacje graficznego interfejsu użytkownika powinny nasłuchiwać komunikatu WM_QUERYENDSESSION i zwracać wartość TRUE, jeśli aplikacja jest przygotowana do zamknięcia i ponownego uruchomienia. Jeśli żadna aplikacja nie zwraca wartości FALSE, Menedżer ponownego uruchamiania wysyła komunikat WM_ENDSESSION z parametrem lParam ustawionym na ENDSESSION_CLOSEAPP (0x1) i parametrem ustawionym na true. Aplikacje powinny być zamykane tylko wtedy, gdy otrzymają komunikat WM_ENDSESSION. Menedżer ponownego uruchamiania wysyła również komunikat WM_CLOSE dla aplikacji graficznego interfejsu użytkownika, które nie są zamykane podczas odbierania WM_ENDSESSION. Jeśli jakakolwiek aplikacja graficznego interfejsu użytkownika odpowiada na komunikat WM_QUERYENDSESSION, zwracając wartość FALSE, zamknięcie zostanie anulowane. Jeśli jednak zamknięcie zostanie wymuszone, aplikacja zostanie zakończona niezależnie od tego.
Gdy aplikacja graficznego interfejsu użytkownika odbiera komunikat WM_ENDSESSION, aplikacja powinna przygotować się do zamknięcia w określonym przedziale czasu. Co najmniej aplikacje powinny przygotować się, zapisując wszystkie dane użytkownika i informacje o stanie, które są potrzebne po ponownym uruchomieniu. Zaleca się, aby aplikacje okresowo zapisywały dane i stan użytkownika.
Menedżer ponownego uruchamiania wysyła powiadomienie CTRL_C_EVENT do aplikacji konsoli, które muszą zostać zamknięte i ponownie uruchomione. Gdy aplikacja konsolowa otrzyma powiadomienie CTRL_C_EVENT, aplikacja powinna podjąć działania niezbędne do przygotowania się do zamknięcia w określonym przedziale czasu. Co najmniej aplikacje konsolowe powinny zdefiniować funkcję HandlerRoutine do obsługi powiadomienia CTRL_C_EVENT i powinny zapisywać wszystkie dane użytkownika i informacje o stanie, które będą potrzebne po ponownym uruchomieniu. Zaleca się, aby aplikacje okresowo zapisywały dane i stan użytkownika.
Jeśli jakiekolwiek aplikacje nie są zamykane w odpowiedzi na komunikaty zamknięcia, instalatory mogą użyć RmForceShutdown opcji RmShutdown, aby wymusić zamknięcie aplikacji. Gdy instalator określa wymuszone zamknięcie, Menedżer ponownego uruchamiania próbuje całkowicie zamknąć aplikacje przez wysłanie komunikatów zamknięcia, ale wymusi ich zamknięcie, jeśli to się nie powiedzie. Aplikacje graficznego interfejsu użytkownika i aplikacje konsolowe można wymusić zamknięcie w celu włączenia instalacji krytycznej aktualizacji zabezpieczeń. Ponieważ może to spowodować utratę danych, aplikacje powinny obsługiwać komunikaty zamykania i wyłączać je w razie potrzeby.
Aplikacje powinny rejestrować się w celu ponownego uruchomienia przy użyciu funkcji RegisterApplicationRestart. Menedżer ponownego uruchamiania może ponownie uruchamiać tylko aplikacje, które zostały zarejestrowane do ponownego uruchomienia. Jest to jedyny sposób, w jaki Menedżer ponownego uruchamiania może określić polecenie wiersza polecenia do użycia podczas ponownego uruchamiania aplikacji. Jeśli aplikacja musi zostać ponownie otwarta przy użyciu zapisanego stanu lub danych, informacje te muszą zostać uwzględnione w poleceniu wiersza polecenia zarejestrowanym dla aplikacji.
Nuta
Jeśli ponownie uruchomiona aplikacja musi być uruchomiona w tym samym katalogu, w których była uruchomiona przed zamknięciem, aplikacja musi zapisać informacje o katalogu, a następnie zmienić katalog na katalog po ponownym uruchomieniu.
Nuta
Funkcja RmRestart nie uruchamia ponownie aplikacji, które nie są uruchamiane jako aktualnie zalogowany użytkownik. Na przykład funkcja RmRestart nie uruchamia ponownie aplikacji uruchomionych przy użyciu Uruchom jako polecenia, które nie są uruchamiane jako aktualnie zalogowany użytkownik. Te aplikacje muszą zostać ręcznie uruchomione ponownie.
Gdy Menedżer ponownego uruchamiania ustali, że do zainstalowania aktualizacji jest wymagane ponowne uruchomienie systemu, nie zamyka żadnych aplikacji i usług. Zamiast tego pozostawia to instalatorowi, aby zdecydować, kiedy zaplanować ponowne uruchomienie systemu i zainstalować aktualizację. Instalatory mogą zmniejszyć zakłócenia spowodowane przez aktualizacje, które wymagają ponownego uruchomienia systemu przy użyciu funkcji ExitWindowsEx z flagą EWX_RESTARTAPPS lub InitiateShutdown funkcji z flagą SHUTDOWN_RESTARTAPPS. Użycie tych flag gwarantuje, że aplikacje zarejestrowane do ponownego uruchomienia zostaną uruchomione ponownie po ponownym uruchomieniu systemu, co minimalizuje wpływ na użytkownika.