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 作業階段主機伺服器上的系統,並在支援 AC 電源軟體控制的電腦上關閉電源。 這相當於使用 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
程式庫 Wtsapi32.lib
Dll Wtsapi32.dll

另請參閱

ExitWindowsEx