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
标头 wtsprotocol.h