Интерфейс IWRdsProtocolConnection (wtsprotocol.h)
Предоставляет методы, вызываемые службой удаленных рабочих столов, для настройки клиентского подключения. Ваш протокол должен реализовать этот интерфейс для обработки запросов на подключение от клиентов. Когда прослушиватель протокола получает запрос на подключение от клиента, он должен создать объект IWRdsProtocolConnection и передать его службе служб удаленных рабочих столов путем вызова метода IWRdsProtocolListenerCallback::OnConnected . В ответ служба добавляет ссылку на объект IWRdsProtocolConnectionCallback и возвращает на него указатель. Если подключение больше не требуется, протокол должен освободить указатель.
Во время последовательности подключений служба удаленных рабочих столов вызывает следующие методы в указанном порядке.
- GetLogonErrorRedirector
- AcceptConnection
- GetClientData
- GetClientMonitorData
- GetUserCredentials
- GetLicenseConnection
- AuthenticateClientToSession
- NotifySessionId
- GetInputHandles
- GetVideoHandle
- ConnectNotify
- NotifyCommandProcessCreated
- IsUserAllowedToLogon
- SessionArbitrationEnumeration
- LogonNotify
- DisconnectNotify (вызывается в новом созданном сеансе).
- NotifySessionId (вызывается в существующем сеансе).
- GetInputHandles
- GetVideoHandle
- ConnectNotify
- LogonNotify
- GetProtocolStatus
- GetLastInputTime
- SetErrorInfo
- CreateVirtualChannel
- QueryProperty
- GetShadowConnection
Наследование
Интерфейс IWRdsProtocolConnection наследуется от интерфейса IUnknown . IWRdsProtocolConnection также имеет следующие типы элементов:
Методы
Интерфейс IWRdsProtocolConnection содержит следующие методы.
IWRdsProtocolConnection::AcceptConnection Направляет протокол на продолжение запроса на подключение. |
IWRdsProtocolConnection::AuthenticateClientToSession Указывает сеанс, к которому должно быть повторно подключено подключение. |
IWRdsProtocolConnection::Close Закрывает подключение после отключения сеанса. |
IWRdsProtocolConnection::ConnectNotify Сообщает протоколу о том, что сеанс был инициализирован. |
IWRdsProtocolConnection::CreateVirtualChannel Запрашивает, чтобы протокол создавал виртуальный канал. |
IWRdsProtocolConnection::D isconnectNotify Уведомляет протокол о том, что сеанс отключен. |
IWRdsProtocolConnection::GetClientData Запрашивает параметры клиента из протокола. |
IWRdsProtocolConnection::GetClientMonitorData Извлекает количество мониторов и основной номер монитора на клиенте. |
IWRdsProtocolConnection::GetInputHandles Получает дескрипторы для устройств ввода-вывода для протокола. |
IWRdsProtocolConnection::GetLastInputTime Извлекает время, когда протокол в последний раз получал входные данные пользователя. |
IWRdsProtocolConnection::GetLicenseConnection Извлекает объект IWRdsProtocolLicenseConnection, который используется для начала процесса лицензирования клиента. |
IWRdsProtocolConnection::GetLogonErrorRedirector Извлекает интерфейс IWRdsProtocolLogonErrorRedirector, указывающий, как протокол должен обрабатывать ошибки входа клиента. |
IWRdsProtocolConnection::GetProtocolStatus Извлекает сведения о состоянии протокола. |
IWRdsProtocolConnection::GetShadowConnection Извлекает ссылку на объект теневых соединений из протокола. |
IWRdsProtocolConnection::GetUserCredentials Возвращает учетные данные пользователя. |
IWRdsProtocolConnection::GetVideoHandle Получает дескриптор видеоустройства для протокола. |
IWRdsProtocolConnection::IsUserAllowedToLogon Определяет по протоколу, разрешено ли пользователю входить в сеанс. |
IWRdsProtocolConnection::LogonNotify Вызывается, когда пользователь вошел в сеанс. |
IWRdsProtocolConnection::NotifyCommandProcessCreated Уведомляет протокол о создании и инициализации процесса Winlogon.exe. |
IWRdsProtocolConnection::NotifySessionId Отправляет идентификатор нового сеанса в протокол. |
IWRdsProtocolConnection::P reDisconnect Уведомляет протокол о том, что сеанс будет отключен. |
IWRdsProtocolConnection::QueryProperty Извлекает значение свойства из протокола. |
IWRdsProtocolConnection::SessionArbitrationEnumeration Вызывается после арбитража, чтобы позволить протоколу указать сеансы для повторного подключения. |
IWRdsProtocolConnection::SetErrorInfo Задает сведения об ошибке в протоколе. |
Комментарии
Чтобы избежать возможной взаимоблокировки при вызове любого из методов в этом интерфейсе, не следует выполнять вызовы функций или методов, которые прямо или косвенно приводят к вызову API служб удаленных рабочих столов. Если необходимо выполнить какой-либо исходящий вызов, следует запустить новый поток и выполнить исходящий вызов из нового потока.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Ни одна версия не поддерживается |
Минимальная версия сервера | Windows Server 2012 |
Целевая платформа | Windows |
Header | wtsprotocol.h |