2.2.2.1 Logical Surface Lifetime Management Orders (TS_COMPDESK_LSURFACE)

The server sends the TS_COMPDESK_LSURFACE packet to the client to indicate the creation or destruction of a logical 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

fCreate

flags

hLsurface

...

...

width

...

height

...

hwnd

...

...

luid

...

...

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. The operation code. This field MUST be set to LSURFACE_CREATE_DESTROY (0x02).

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 0x22.

fCreate (1 byte): An 8-bit unsigned integer. This field is used to indicate a logical surface "create" event when set to 1 and a "destroy" event when set to 0.

Name

Value

create

0x01

destroy

0x00

flags (1 byte): An 8-bit unsigned integer. A collection of flags with the following meaning if fCreate is set to 1. If fCreate is set to 0, these fields MUST be ignored:

Value

Meaning

TS_COMPDESK_HLSURF_COMPOSEONCE

0x00000001

This logical surface is a compose-once surface.

TS_COMPDESK_HLSURF_REDIRECTION

0x00000004

This logical surface is a redirection surface.

hLsurface (8 bytes): A 64-bit unsigned integer. A surface manager–generated identifier for a logical surface.

width (4 bytes): A 32-bit unsigned integer. The width (or x-axis size) of the logical surface, in pixels. This field is not used, and MUST be set to 0 on the server and ignored on the client.

height (4 bytes): A 32-bit unsigned integer. The height (or y-axis size) of the logical surface, in pixels. This field is not used, and MUST be set to 0 on the server and ignored on the client.

hwnd (8 bytes): A 64-bit unsigned integer. The window handle associated with this logical surface on the server.

luid (8 bytes): A 64-bit unsigned integer. This field is not used, and MUST be set to 0 on the server and ignored on the client.