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


Функция WSManDisconnectShell (wsman.h)

Отключает сетевое подключение активной оболочки и связанные с ней команды.

Синтаксис

void WSManDisconnectShell(
  [in, out] WSMAN_SHELL_HANDLE          shell,
            DWORD                       flags,
  [in]      WSMAN_SHELL_DISCONNECT_INFO *disconnectInfo,
  [in]      WSMAN_SHELL_ASYNC           *async
);

Параметры

[in, out] shell

Указывает дескриптор, возвращаемый вызовом функции WSManCreateShell . Этот параметр не может иметь значение NULL.

flags

Может быть флагом WSMAN_FLAG_SERVER_BUFFERING_MODE_DROP или флагом WSMAN_FLAG_SERVER_BUFFERING_MODE_BLOCK .

[in] disconnectInfo

Указатель на структуру WSMAN_SHELL_DISCONNECT_INFO , указывающую время ожидания простоя, которое может применять сеанс сервера. Если этот параметр имеет значение NULL, время ожидания простоя сеанса сервера не изменится.

[in] async

Определяет асинхронную структуру, содержащую необязательный контекст пользователя и обязательную функцию обратного вызова. Дополнительные сведения см. в разделе WSMAN_SHELL_ASYNC. Этот параметр не может иметь значение NULL.

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

None

Remarks

Эта функция приостанавливает сетевое подключение к сеансу активно подключенного сервера. Все операции, выполняемые с экземпляром оболочки, такие как WSManRunShellCommand, WSManSendShellInput или WSManSignalShell, привязываются к завершению перед отключением. Это гарантирует, что все данные, отправляемые через WSManSendShellInput , будут получены сеансом сервера до отключения оболочки. При необходимости клиент может изменить режим буферизации сервера с помощью флагов. Наблюдается следующее поведение:

  • WSMAN_FLAG_SERVER_BUFFERING_MODE_DROP — когда буферы заполнены, сервер удаляет более ранние данные в буферы потока ответа, чтобы обеспечить продолжение выполнения соответствующей командной операции.
  • WSMAN_FLAG_SERVER_BUFFERING_MODE_BLOCK — когда буферы потока ответа заполнены, сервер блокирует выполнение команды. Если флаг не указан, сервер продолжает использовать настроенный режим или режим, указанный при создании оболочки. В случае сбоя сети, если клиенту не удается связаться с сеансом для отключения оболочки, возвращается следующая ошибка:

    ERROR_WINRS_SHELL_DISCONNECT_OPERATION_NOT_GRACEFUL

    Сеанс клиента по-прежнему переходит в отключенное состояние, но не гарантируется, что какие-либо предыдущие операции будут завершены до отключения сеанса.

Требования

Требование Значение
Минимальная версия клиента Windows 8
Минимальная версия сервера Windows Server 2012
Целевая платформа Windows
Header wsman.h
Библиотека WsmSvc.lib
DLL WsmSvc.dll