RmStartSession 函数 (restartmanager.h)

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

语法

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

参数

[out] pSessionHandle

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

dwSessionFlags

保留。 此参数应为 0。

[out] strSessionKey

包含新会话的会话键的 null 终止字符串。 在调用 RmStartSession 函数之前,必须分配大小CCH_RM_SESSION_KEY + 1字符串。

返回值

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

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

注解

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

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

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

要求

要求 价值
最低支持的客户端 Windows Vista [仅限桌面应用]
支持的最低服务器 Windows Server 2008 [仅限桌面应用]
目标平台 Windows操作系统
标头 restartmanager.h
图书馆 Rstrtmgr.lib
DLL Rstrtmgr.dll

另请参阅

RmEndSession

RmJoinSession