virtualCHANNELINIT 回调函数 (cchannel.h)
初始化客户端 DLL 对远程桌面服务虚拟通道的访问。 客户端调用 VirtualChannelInit 来注册其虚拟通道的名称。
远程桌面服务在传递给 VirtualChannelEntry 入口点 的 CHANNEL_ENTRY_POINTS 结构中提供指向 VirtualChannelInit 函数的 指针。
语法
VIRTUALCHANNELINIT Virtualchannelinit;
UINT VCAPITYPE Virtualchannelinit(
[in] LPVOID *ppInitHandle,
[in, out] PCHANNEL_DEF pChannel,
[in] INT channelCount,
[in] ULONG versionRequested,
[in] PCHANNEL_INIT_EVENT_FN pChannelInitEventProc
)
{...}
参数
[in] ppInitHandle
指向一个变量的指针,该变量接收标识客户端连接的句柄。 使用此句柄在后续调用 VirtualChannelOpen 函数时标识客户端。
[in, out] pChannel
指向CHANNEL_DEF结构的数组 的 指针。 每个结构都包含客户端 DLL 将打开的虚拟通道的名称和初始化选项。 请注意, VirtualChannelInit 调用不会打开这些虚拟通道;它只保留供此应用程序使用的名称。
[in] channelCount
指定 pChannel 数组中的条目数。
[in] versionRequested
指定虚拟通道支持级别。 将此参数设置为 VIRTUAL_CHANNEL_VERSION_WIN2000。
[in] pChannelInitEventProc
指向应用程序定义的 VirtualChannelInitEvent 函数的指针,远程桌面服务调用该函数以通知客户端 DLL 虚拟通道事件。
返回值
如果函数成功,则返回值 CHANNEL_RC_OK。
如果发生错误,该函数将返回以下值之一。
注解
只能从 VirtualChannelEntry 函数调用 VirtualChannelInit 函数。 任何其他时间对 VirtualChannelInit 的调用都失败。
当 VirtualChannelInit 成功返回时,远程桌面服务已注册请求的通道。 但是,远程桌面服务可能尚未完成其他初始化。 完成所有初始化后,远程桌面服务会使用 CHANNEL_EVENT_INITIALIZED 事件调用 VirtualChannelInitEvent 回调函数。
在调用此函数之前,不应假设可用虚拟通道的数量,因为系统和其他插件可能具有保留的虚拟通道。 因此,调用此函数后,应始终检查CHANNEL_RC_TOO_MANY_CHANNELS返回代码。
当 VirtualChannelInit 返回时,如果通道已成功初始化,则每个CHANNEL_DEF结构的 options 成员包括CHANNEL_OPTION_INITIALIZED。
每个客户端会话的最大通道数 CHANNEL_MAX_COUNT。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows Vista |
最低受支持的服务器 | Windows Server 2008 |
目标平台 | Windows |
标头 | cchannel.h |