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

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

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

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

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

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

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

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

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

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

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