搭配主要安裝程式使用重新啟動管理員
下列程序說明如何使用重新啟動管理員來關閉和重新啟動應用程式和服務。 搭配單一安裝程式使用重新啟動管理員時,此安裝程式也是控制使用者介面的主要安裝程式。
使用重新啟動管理員搭配主要安裝程式
安裝程式會呼叫 RmStartSession 函式來啟動重新啟動管理員會話,並取得會話句柄和密鑰。
安裝程式會呼叫 RmRegisterResources 函式來註冊資源。 重新啟動管理員只能使用已註冊的資源來判斷哪些應用程式和服務必須關閉並重新啟動。 所有可能受安裝程序影響的資源都應該向安裝會話註冊。 資源可以透過檔名、服務簡短名稱或 RM_UNIQUE_PROCESS 結構來識別。
安裝程式會呼叫 RmGetList 函式,以取得 RM_PROCESS_INFO 結構的陣列,其中列出必須關閉和重新啟動的所有應用程式和服務。
如果由 RmGetList 函式傳回的 lpdwRebootReason 參數的值為非零,則重新啟動管理員將無法藉由關閉應用程式或服務來釋放已註冊的資源。 在此情況下,需要系統關機並重新啟動,才能繼續安裝。 安裝程式應提示使用者執行動作、停止程式或服務,或排程系統關機並重新啟動。
如果 RmGetList 函式所傳回 lpdwRebootReason 參數的值為零,安裝程式應該呼叫 RmShutdown 函式。 這會關閉使用已註冊資源的服務和應用程式。 安裝程式接著應該執行完成安裝所需的系統修改。 最後,安裝程式應該呼叫 RmRestart 函式,讓重新啟動管理員可以重新啟動它已關閉且已註冊重新啟動的應用程式。
安裝程式可以使用 RmAddFilter 函式,防止重新啟動管理員作業關閉或重新啟動指定的應用程式和服務。 RmGetFilterList 函式會傳回要從關機和重新啟動篩選的應用程式和服務清單。 RmRemoveFilter 函式會移除篩選。
安裝程式會呼叫 RmEndSession 函式來關閉重新啟動管理員會話。
如需示範使用主要安裝程式啟動和使用重新啟動管理員工作階段,然後將次要安裝程式加入現有工作階段的範例代碼段,請參閱 使用重新啟動管理員搭配次要安裝程式。