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


Интерфейс IWRdsProtocolConnection (wtsprotocol.h)

Предоставляет методы, вызываемые службой удаленных рабочих столов, для настройки клиентского подключения. Ваш протокол должен реализовать этот интерфейс для обработки запросов на подключение от клиентов. Когда прослушиватель протокола получает запрос на подключение от клиента, он должен создать объект IWRdsProtocolConnection и передать его службе служб удаленных рабочих столов путем вызова метода IWRdsProtocolListenerCallback::OnConnected . В ответ служба добавляет ссылку на объект IWRdsProtocolConnectionCallback и возвращает на него указатель. Если подключение больше не требуется, протокол должен освободить указатель.

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

  1. GetLogonErrorRedirector
  2. AcceptConnection
  3. GetClientData
  4. GetClientMonitorData
  5. GetUserCredentials
  6. GetLicenseConnection
  7. AuthenticateClientToSession
  8. NotifySessionId
  9. GetInputHandles
  10. GetVideoHandle
  11. ConnectNotify
  12. NotifyCommandProcessCreated
  13. IsUserAllowedToLogon
  14. SessionArbitrationEnumeration
  15. LogonNotify
Если службе удаленных рабочих столов необходимо повторно подключиться после вызова SessionArbitrationEnumeration, она повторно подключается путем вызова следующих методов в указанном порядке:
  1. DisconnectNotify (вызывается в новом созданном сеансе).
  2. NotifySessionId (вызывается в существующем сеансе).
  3. GetInputHandles
  4. GetVideoHandle
  5. ConnectNotify
  6. LogonNotify
Чтобы отключиться, служба удаленных рабочих столов вызывает следующие методы в указанном порядке:
  1. PreDisconnect
  2. DisconnectNotify
  3. Закрыть
Служба удаленных рабочих столов может вызывать следующие методы в любое время после установки подключения:

Наследование

Интерфейс 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