CHANNEL_PDU_HEADER 结构 (pchannel.h)
包含有关虚拟通道的服务器端接收的数据块的信息。
语法
typedef struct tagCHANNEL_PDU_HEADER {
UINT32 length;
UINT32 flags;
} CHANNEL_PDU_HEADER, *PCHANNEL_PDU_HEADER;
成员
length
数据块的大小(以字节为单位),不包括此标头。
flags
有关数据块的信息。 将设置以下位标志。 请注意,在比较以下列表中的值时,不应使用“==”运算符进行直接比较:请改用列表中介绍的比较方法。
CHANNEL_FLAG_FIRST (1)
区块是单个写入操作写入的数据的开头。
比较此标志时,请使用按位比较。
CHANNEL_FLAG_LAST (2)
区块是单个写入操作写入的数据的末尾。
比较此标志时,请使用按位比较。
CHANNEL_FLAG_MIDDLE (0)
这是默认值。 区块位于由单个写入操作写入的数据块的中间。
请勿使用按位比较来直接比较此标志值。 请改用按位比较来确定标志值不是 CHANNEL_FLAG_FIRST 或 CHANNEL_FLAG_LAST。 这是使用以下比较来完成的:
Result = !(flags & CHANNEL_FLAG_FIRST) && !(flags & CHANNEL_FLAG_LAST)
CHANNEL_FLAG_ONLY (3)
将 CHANNEL_FLAG_FIRST 值和CHANNEL_FLAG_LAST值组合在 一 起。 区块包含单个写入操作中的所有数据。
比较此标志时,请使用按位比较。
注解
在某些情况下,远程桌面服务会在调用 WTSVirtualChannelRead 函数读取的每个数据区块的开头放置一个CHANNEL_PDU_HEADER结构。 如果客户端 DLL 在调用 VirtualChannelInit 函数以初始化虚拟通道时设置CHANNEL_OPTION_SHOW_PROTOCOL选项,则会发生此情况。 如果通道是使用 IWTSVirtualChannel::Write 方法写入的动态虚拟通道,则也会发生这种情况。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows Vista |
最低受支持的服务器 | Windows Server 2008 |
标头 | pchannel.h |