将重启管理器与主安装程序配合使用

以下过程介绍如何使用重启管理器来关闭和重启应用程序和服务。 将重启管理器与单个安装程序一起使用时,此安装程序也是控制用户界面的主安装程序。

将重启管理器与主安装程序配合使用

  1. 安装程序调用 RmStartSession 函数来启动重启管理器会话并获取会话句柄和密钥。

  2. 安装程序调用 RmRegisterResources 函数来注册资源。 重启管理器只能使用已注册的资源来确定哪些应用程序和服务必须关闭和重启。 所有可能受安装影响的资源都应注册到会话。 可以通过文件名、服务短名称或 RM_UNIQUE_PROCESS 结构来标识资源。

  3. 安装程序调用 RmGetList 函数以获取 RM_PROCESS_INFO 结构的数组,其中列出了必须关闭和重启的所有应用程序和服务。

    如果 RmGetList 函数返回的 lpdwRebootReason 参数的值为非零值,则重启管理器无法通过关闭应用程序或服务来释放已注册的资源。 在这种情况下,需要关闭系统并重启才能继续安装。 安装程序应提示用户执行操作、停止程序或服务,或计划系统关闭并重启。

    如果 RmGetList 函数返回的 lpdwRebootReason 参数的值为零,则安装程序应调用 RmShutdown 函数。 这会关闭使用已注册资源的服务和应用程序。 然后,安装程序应执行完成安装所需的系统修改。 最后,安装程序应调用 RmRestart 函数,以便重启管理器可以重启它已关闭且已注册重启的应用程序。

  4. 安装程序可以使用 RmAddFilter 函数来防止重启管理器操作关闭或重启指定的应用程序和服务。 RmGetFilterList 函数返回要从关闭和重启中筛选的应用程序和服务的列表。 RmRemoveFilter 函数删除筛选器。

  5. 安装程序调用 RmEndSession 函数以关闭重启管理器会话。

有关演示如何使用主安装程序启动和使用重启管理器会话,然后将辅助安装程序加入现有会话的示例代码片段,请参阅 将 Restart Manager 与辅助安装程序配合使用