Поделиться через


Функция WTSShutdownSystem (wtsapi32.h)

Завершает работу (и при необходимости перезапускает) указанный сервер узла сеансов удаленных рабочих столов (узел сеансов удаленных рабочих столов).

Чтобы завершить работу или перезапустить систему, вызывающий процесс должен иметь разрешение SE_SHUTDOWN_NAME . Дополнительные сведения о привилегиях безопасности см. в разделе Privileges and Authorization Constants.

Синтаксис

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

Параметры

[in] hServer

Обработка сервера узла сеансов удаленных рабочих стола. Укажите дескриптор, открытый функцией WTSOpenServer , или укажите WTS_CURRENT_SERVER_HANDLE , чтобы указать сервер узла сеансов удаленных рабочих столов, на котором выполняется приложение.

[in] ShutdownFlag

Указывает тип завершения работы. Этот параметр может принимать одно из указанных ниже значений.

WTS_WSD_LOGOFF

Принудительно выключает все клиентские сеансы (за исключением сеанса, вызывающего WTSShutdownSystem) и отключает все последующие удаленные входы. Его можно использовать в качестве шага перед завершением работы. Вход будет снова включен при перезапуске службы удаленных рабочих столов.

Используйте это значение только в консоли служб удаленных рабочих столов.

WTS_WSD_POWEROFF

Завершает работу системы на сервере узла сеансов удаленных рабочих стола и отключает питание на компьютерах, поддерживающих программное управление питанием переменного тока. Это эквивалентно вызову ExitWindowsEx с EWX_SHUTDOWN и EWX_POWEROFF. У вызывающего процесса должна быть включена SE_SHUTDOWN_NAME привилегия.

WTS_WSD_REBOOT

Завершает работу, а затем перезапускает систему на сервере узла сеансов удаленных рабочих стола. Это эквивалентно вызову ExitWindowsEx с EWX_REBOOT. У вызывающего процесса должна быть включена SE_SHUTDOWN_NAME привилегия.

WTS_WSD_SHUTDOWN

Завершает работу системы на сервере узла сеансов удаленных рабочих стола. Это эквивалентно вызову функции ExitWindowsEx с EWX_SHUTDOWN. У вызывающего процесса должна быть включена SE_SHUTDOWN_NAME привилегия.

WTS_WSD_FASTREBOOT

В настоящее время это значение не поддерживается.

Возвращаемое значение

Если функция выполняется успешно, возвращается ненулевое значение.

Если функция выполняется неудачно, возвращается нулевое значение. Дополнительные сведения об ошибке можно получить, вызвав GetLastError.

Комментарии

Завершение работы системы завершает работу всех пользователей и активных программ. Во время завершения работы выполняются следующие действия.

  1. Команда выхода выполняется для всех активных приложений пользователей.
  2. Если приложение не завершает работу в течение определенного интервала, приложение завершается.
  3. После завершения работы всех приложений для пользователя пользователь выключается.
  4. После выхода всех пользователей для всех системных служб будет выдана команда выхода.
  5. Если системная служба не завершает работу в течение определенного интервала, служба завершается.
  6. Кэш файловой системы записывается на диск.
  7. Диски помечены как доступные только для чтения.
  8. На сервере узла сеансов удаленных рабочих стола отображается сообщение "Теперь безопасно выключить компьютер", или система перезагрузится, если указано WTS_WSD_REBOOT . (Сообщение отображается в консоли, так как все сеансы клиента были прерваны.)
Примечание Так как в большой конфигурации с несколькими пользователями может быть много пользователей и процессов, для упорядоченного завершения работы больших системных конфигураций может потребоваться некоторое время. Важно обеспечить полное завершение работы системы.
 
Windows Server 2008 и Windows Vista: Вызов WTSShutdownSystem не работает, если удаленная диспетчер подключений (RCM) отключена. Это происходит при остановке службы удаленных рабочих столов.

Требования

Требование Значение
Минимальная версия клиента Windows Vista
Минимальная версия сервера Windows Server 2008
Целевая платформа Windows
Header wtsapi32.h
Библиотека Wtsapi32.lib
DLL Wtsapi32.dll

См. также раздел

ExitWindowsEx