2.2.2.2 Redirection Surfaces Lifetime Management Order (TS_COMPDESK_SURFOBJ)

The server sends the TS_COMPDESK_SURFOBJ packet to the client to create or destroy a redirection surface.


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

header

operation

size

cacheId

surfaceBpp

flags

hSurf

...

...

cx

...

cy

...

header (1 byte): An 8-bit unsigned integer. An alternate secondary order header as specified in [MS-RDPEGDI] section 2.2.2.2.1.3.1.1. The embedded order type field MUST be set to TS_ALTSEC_COMPDESK_FIRST (0x0C).

operation (1 byte): An 8-bit unsigned integer. This field MUST be set to SURFOBJ_CREATE_DESTROY (0x03).

size (2 bytes): A 16-bit unsigned integer. The size of the order data that follows the size field. This field MUST be set to 0x16.

cacheId (4 bytes): A 32-bit unsigned integer. This cacheId is a unique, per-connection number that the server generates in order to identify the surface. Only 31 of the 32 bits are used as an identifier. The highest bit of the cacheId field is used to indicate a redirection surface creation when set to 0 and a redirection surface destroy when set to 1.

surfaceBpp (1 byte): An 8-bit unsigned integer. The number of bits used to encode one pixel in the redirection surface.

flags (1 byte): The flags field MUST be set to 0, and ignored if received.

hSurf (8 bytes): A 64-bit unsigned integer. A sprite manager–generated identifier for a surface attached to a sprite.

cx (4 bytes): A 32-bit unsigned integer. The x-axis size of the redirection surface, in pixels.

cy (4 bytes): A 32-bit unsigned integer. The y-axis size of the redirection surface, in pixels.