WTSShutdownSystem 函数 (wtsapi32.h)

关闭 (,并可以选择) 指定的远程桌面会话主机 (RD 会话主机) 服务器重启。

若要关闭或重启系统,调用进程必须启用 SE_SHUTDOWN_NAME 特权。 有关安全特权的详细信息,请参阅 特权授权常量

语法

BOOL WTSShutdownSystem(
  [in] HANDLE hServer,
  [in] DWORD  ShutdownFlag
);

参数

[in] hServer

RD 会话主机服务器的句柄。 指定 由 WTSOpenServer 函数打开的句柄,或指定 WTS_CURRENT_SERVER_HANDLE 以指示运行应用程序的 RD 会话主机服务器。

[in] ShutdownFlag

指示关闭的类型。 此参数的取值可为下列值之一:

WTS_WSD_LOGOFF

强制所有客户端会话注销 (,调用 WTSShutdownSystem) 的会话除外,并禁用任何后续远程登录。 这可以用作关闭前的步骤。 重新启动远程桌面服务时,将重新启用登录。

仅在远程桌面服务控制台上使用此值。

WTS_WSD_POWEROFF

关闭 RD 会话主机服务器上的系统,并在支持软件控制交流电源的计算机上关闭电源。 这等效于使用 EWX_SHUTDOWNEWX_POWEROFF 调用 ExitWindowsEx。 调用进程必须启用 SE_SHUTDOWN_NAME 特权。

WTS_WSD_REBOOT

关闭 RD 会话主机服务器上的系统,然后重新启动系统。 这等效于使用 EWX_REBOOT 调用 ExitWindowsEx。 调用进程必须启用 SE_SHUTDOWN_NAME 特权。

WTS_WSD_SHUTDOWN

关闭 RD 会话主机服务器上的系统。 这等效于使用 EWX_SHUTDOWN 调用 ExitWindowsEx 函数。 调用进程必须启用 SE_SHUTDOWN_NAME 特权。

WTS_WSD_FASTREBOOT

目前不支持此值。

返回值

如果该函数成功,则返回值为非零值。

如果函数失败,则返回值为零。 要获得更多的错误信息,请调用 GetLastError。

注解

系统关闭会终止所有用户和活动程序。 在关闭期间执行以下步骤。

  1. 向所有活动用户应用程序发出退出命令。
  2. 如果应用程序未在特定时间间隔内退出,则应用程序将终止。
  3. 用户的所有应用程序终止后,用户将注销。
  4. 所有用户注销后,将对所有系统服务发出退出命令。
  5. 如果系统服务未在特定时间间隔内终止,则服务将终止。
  6. 文件系统缓存将写入磁盘。
  7. 磁盘标记为只读。
  8. RD 会话主机服务器显示消息“现在可以安全地关闭计算机”,或者如果指定 了WTS_WSD_REBOOT ,系统将重启。 (由于所有客户端会话都已终止,因此控制台上会显示消息。)
注意 由于大型多用户配置中可能有许多用户和进程,因此大型系统配置可能需要一些时间才能有序地关闭。 必须允许系统完全关闭。
 
Windows Server 2008 和 Windows Vista: 禁用远程连接管理器 (RCM) 时,对 WTSShutdownSystem 的调用不起作用。 远程桌面服务停止时就是这种情况。

要求

要求
最低受支持的客户端 Windows Vista
最低受支持的服务器 Windows Server 2008
目标平台 Windows
标头 wtsapi32.h
Library Wtsapi32.lib
DLL Wtsapi32.dll

另请参阅

ExitWindowsEx