Функция 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 |