2.2.1.1 Tunnel PDU Header (RDP_TUNNEL_HEADER)

The RDP_TUNNEL_HEADER structure is a common header included in every multitransport PDU specified in section 2.2.2.


0


1


2


3


4


5


6


7


8


9

1
0


1


2


3


4


5


6


7


8


9

2
0


1


2


3


4


5


6


7


8


9

3
0


1

Action

Flags

PayloadLength

HeaderLength

SubHeaders (variable)

...

...

Action (4 bits):  A 4-bit unsigned integer that indicates the type of PDU being transmitted.

Value

Meaning

RDPTUNNEL_ACTION_CREATEREQUEST

0x0

RDP_TUNNEL_CREATEREQUEST (section 2.2.2.1)

RDPTUNNEL_ACTION_CREATERESPONSE

0x1

RDP_TUNNEL_CREATERESPONSE (section 2.2.2.2)

RDPTUNNEL_ACTION_DATA

0x2

RDP_TUNNEL_DATA (section 2.2.2.3)

Flags (4 bits):  A 4-bit unsigned integer that specifies tunnel flags. This field MUST be set to zero.

PayloadLength (2 bytes):  A 16-bit unsigned integer that specifies the length, in bytes, of the payload following the header. This length MUST NOT include the length of the RDP_TUNNEL_HEADER structure.

HeaderLength (1 byte):  An 8-bit unsigned integer that specifies the combined length, in bytes, of the Action, Flags, PayloadLength, HeaderLength, and SubHeaders fields. If the value in this field is larger than 4 bytes, then the SubHeaders field MUST be present.

SubHeaders (variable):  An optional, variable-length array of RDP_TUNNEL_SUBHEADER structures (section 2.2.1.1.1). This field MUST be present if the value specified in the HeaderLength field is larger than 4 bytes.