rmStartSession 函数 (restartmanager.h)

启动新的重启管理器会话。 每个用户会话最多可以同时在系统上打开 64 个重启管理器会话。 当此函数启动会话时,它将返回会话句柄和会话密钥,这些句柄和会话密钥可用于对重启管理器 API 的后续调用。

语法

DWORD RmStartSession(
  [out] DWORD    *pSessionHandle,
        DWORD    dwSessionFlags,
  [out] WCHAR [] strSessionKey
);

参数

[out] pSessionHandle

指向重启管理器会话句柄的指针。 会话句柄可以在后续调用中传递给重启管理器 API。

dwSessionFlags

保留。 此参数应为 0。

[out] strSessionKey

一个 以 null 结尾的字符串,其中包含新会话的会话密钥。 在调用 RmStartSession 函数之前,必须分配字符串。

返回值

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

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

注解

如果已存在具有相同会话密钥的会话, RmStartSession 函数将返回错误。

RmStartSession 函数应由控制用户界面或控制更新中多个修补程序的安装顺序的主安装程序调用。

辅助安装程序可以通过使用从主安装程序的 RmStartSession 函数调用返回的会话句柄和会话密钥调用 RmJoinSession 函数来加入现有的重启管理器会话。

要求

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

另请参阅

RmEndSession

RmJoinSession