rmRegisterResources 函数 (restartmanager.h)

将资源注册到重启管理器会话。 重启管理器使用向会话注册的资源列表来确定必须关闭和重启哪些应用程序和服务。 可以通过文件名、服务短名称或描述正在运行的应用程序 RM_UNIQUE_PROCESS 结构来标识资源。 RmRegisterResources 函数可由主安装程序或辅助安装程序使用。

语法

DWORD RmRegisterResources(
  [in]           DWORD                dwSessionHandle,
  [in]           UINT                 nFiles,
  [in, optional] LPCWSTR []           rgsFileNames,
  [in]           UINT                 nApplications,
  [in, optional] RM_UNIQUE_PROCESS [] rgApplications,
  [in]           UINT                 nServices,
  [in, optional] LPCWSTR []           rgsServiceNames
);

参数

[in] dwSessionHandle

现有重启管理器会话的句柄。

[in] nFiles

正在注册的文件数。

[in, optional] rgsFileNames

完整文件名路径的 以 null 结尾的字符串数组。 如果 nFiles 为 0,此参数可以为 NULL

[in] nApplications

正在注册的进程数。

[in, optional] rgApplications

RM_UNIQUE_PROCESS 结构的数组。 如果 nApplications 为 0,此参数可以为 NULL

[in] nServices

要注册的服务数。

[in, optional] rgsServiceNames

null 结尾的服务短名称字符串的数组。 如果 nServices 为 0,此参数可以为 NULL

返回值

这是收到的最新错误。 函数可以返回 Winerror.h 中定义的 系统错误代码 之一。

含义
ERROR_SUCCESS
0
指定的资源已注册。
ERROR_SEM_TIMEOUT
121
重启管理器函数无法在分配的时间内获取注册表写入互斥体。 建议重启系统,因为进一步使用重启管理器可能会失败。
ERROR_BAD_ARGUMENTS
160
一个或多个参数无效。 如果在需要非 null 和非零值的参数中传递 NULL 指针或 0,则重启管理器函数将返回此错误值。
ERROR_WRITE_FAULT
29
操作无法读取或写入注册表。
ERROR_OUTOFMEMORY
14
重启管理器操作无法完成,因为没有足够的内存可用。
ERROR_INVALID_HANDLE
6
提供的句柄不存在重启管理器会话。

注解

每次调用 RmRegisterResources 函数都会执行相对昂贵的写入操作。 不要为每个文件调用此函数一次,而是将相关文件分组到组件中,并一起注册这些组件。

要求

要求
最低受支持的客户端 Windows Vista [仅限桌面应用]
最低受支持的服务器 Windows Server 2008 [仅限桌面应用]
目标平台 Windows
标头 restartmanager.h
Library Rstrtmgr.lib
DLL Rstrtmgr.dll