CHANNEL_OPEN_EVENT_FN回调函数 (cchannel.h)
远程桌面服务调用的应用程序定义的回调函数,以通知客户端 DLL 特定虚拟通道的事件。
PCHANNEL_OPEN_EVENT_FN类型定义指向此回调函数的指针。 VirtualChannelOpenEvent 是应用程序定义的或库定义的函数名称的占位符。
语法
CHANNEL_OPEN_EVENT_FN ChannelOpenEventFn;
VOID VCAPITYPE ChannelOpenEventFn(
[in] DWORD openHandle,
[in] UINT event,
[in] LPVOID pData,
[in] UINT32 dataLength,
[in] UINT32 totalLength,
[in] UINT32 dataFlags
)
{...}
参数
[in] openHandle
虚拟通道的句柄。 这是 VirtualChannelOpen 函数的 pOpenHandle 参数中返回的句柄。
[in] event
指示导致通知的事件。 此参数的取值可为下列值之一:
CHANNEL_EVENT_DATA_RECEIVED
虚拟通道从服务器端接收数据。 pData 是指向数据区块的指针。 dataLength 指示此区块的大小。 totalLength 指示服务器写入的数据的总大小。
CHANNEL_EVENT_WRITE_CANCELLED
由 VirtualChannelWrite 调用启动的写入操作已取消。 pData 是在 VirtualChannelWrite 的 pUserData 参数中指定的值。
当客户端会话断开连接时,将取消写入操作。 此通知使你能够释放与写入操作关联的任何内存。
CHANNEL_EVENT_WRITE_COMPLETE
由 VirtualChannelWrite 调用启动的写入操作已完成。 pData 是在 VirtualChannelWrite 的 pUserData 参数中指定的值。
[in] pData
指向事件的其他数据的指针。 数据类型取决于事件,如前面事件说明中所述。
如果CHANNEL_EVENT_DATA_RECEIVED事件,则服务器写入的数据将分解为不超过 CHANNEL_CHUNK_LENGTH 个字节的区块。 dataFlags 参数指示当前区块是位于服务器写入的数据块的开头、中间还是末尾。
请注意,此参数的大小可以大于 dataLength 参数指定的值。 应用程序应仅读取 dataLength 指定的字节数。
[in] dataLength
指定 pData 缓冲区中数据的大小(以字节为单位)。
[in] totalLength
指定由单个写入操作写入虚拟通道服务器端的数据的总大小(以字节为单位)。
[in] dataFlags
提供有关 在 CHANNEL_EVENT_DATA_RECEIVED 事件中接收的数据区块的信息。 将设置以下位标志。
请注意,在比较以下列表中的值时,不应使用“==”运算符进行直接比较:请改用所述的比较方法。
CHANNEL_FLAG_FIRST
区块是单个写入操作写入的数据的开头。
比较此标志时,请使用按位比较。
CHANNEL_FLAG_LAST
区块是单个写入操作写入的数据的末尾。
比较此标志时,请使用按位比较。
CHANNEL_FLAG_MIDDLE
这是默认值。 区块位于由单个写入操作写入的数据块的中间。
请勿使用按位比较来直接比较此标志值。 请改用按位比较来确定标志值不是 CHANNEL_FLAG_FIRST 或 CHANNEL_FLAG_LAST。 这是通过使用以下比较来完成的: Result = !(flags & CHANNEL_FLAG_FIRST) && !(flags & CHANNEL_FLAG_LAST)
。
CHANNEL_FLAG_ONLY
将 CHANNEL_FLAG_FIRST 值和CHANNEL_FLAG_LAST值组合在 一 起。 区块包含单个写入操作中的所有数据。
比较此标志时,请使用按位比较。
返回值
此函数没有返回值。
注解
客户端 DLL 使用 VirtualChannelOpen 函数为特定虚拟通道注册 VirtualChannelOpenEvent 函数。
可以将同一 VirtualChannelOpenEvent 函数用于多次调用 VirtualChannelOpen。
在执行时,可以使用其他事件类型调用此函数。 例如,在处理 CHANNEL_EVENT_DATA_RECEIVED 事件时,可以使用 CHANNEL_EVENT_WRITE_COMPLETE 或 CHANNEL_EVENT_WRITE_CANCELLED调用它 。 请注意,此函数不会使用当前正在处理的事件类型调用。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows Vista |
最低受支持的服务器 | Windows Server 2008 |
目标平台 | Windows |
标头 | cchannel.h |