2.2.2.2 RDPGFX_WIRE_TO_SURFACE_PDU_2

The RDPGFX_WIRE_TO_SURFACE_PDU_2 message is used to transfer encoded bitmap data progressively from the server to a client-side destination surface by leveraging a compression context that persists on the server and the client until the transfer of the bitmap data is complete.


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

...

surfaceId

codecId

codecContextId

pixelFormat

bitmapDataLength

...

bitmapData (variable)

...

...

header (8 bytes):  An RDPGFX_HEADER (section 2.2.1.5) structure. The cmdId field MUST be set to RDPGFX_CMDID_WIRETOSURFACE_2 (0x0002), while the flags field MUST be set to zero.

surfaceId (2 bytes):  A 16-bit unsigned integer that specifies the ID of the destination surface.

codecId (2 bytes):  A 16-bit unsigned integer that specifies the codec that was used to encode the bitmap data encapsulated in the bitmapData field.

Value

Meaning

RDPGFX_CODECID_CAPROGRESSIVE

0x0009

The bitmap data encapsulated in the bitmapData field is compressed using the RemoteFX Progressive Codec (sections 2.2.4.2, 3.1.8.1, 3.2.8.1, and 3.3.8.2).

codecContextId (4 bytes):  A 32-bit unsigned integer that identifies the compression context associated with the bitmap data encapsulated in the bitmapData field.

pixelFormat (1 byte):  An RDPGFX_PIXELFORMAT (section 2.2.1.4) structure that specifies the pixel format of the decoded bitmap data encapsulated in the bitmapData field.

bitmapDataLength (4 bytes):  A 32-bit unsigned integer that specifies the length, in bytes, of the bitmapData field.

bitmapData (variable):  A variable-length array of bytes containing bitmap data encoded using the codec identified by the ID in the codecId field.