Partager via


2.2.9.1.2.1 Fast-Path Update (TS_FP_UPDATE)

The TS_FP_UPDATE structure is used to describe and encapsulate the data for a fast-path update sent from server to client. All fast-path updates conform to this basic structure (sections 2.2.9.1.2.1.1 to 2.2.9.1.2.1.10).


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

updateHeader

compressionFlags (optional)

size

updateData (variable)

...

updateHeader (1 byte):  An 8-bit, unsigned integer. Three pieces of information are collapsed into this byte:

  • Fast-path update type

  • Fast-path fragment sequencing

  • Compression usage indication

The format of the updateHeader byte is described by the following bitmask diagram.


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

updateCode

fragmentation

compression

updateCode (4 bits): A 4-bit, unsigned integer that specifies the type code of the update.

Value (4 bits)

Meaning

FASTPATH_UPDATETYPE_ORDERS

0x0

Indicates a Fast-Path Orders Update ([MS-RDPEGDI] section 2.2.2.2).

FASTPATH_UPDATETYPE_BITMAP

0x1

Indicates a Fast-Path Bitmap Update (section 2.2.9.1.2.1.2).

FASTPATH_UPDATETYPE_PALETTE

0x2

Indicates a Fast-Path Palette Update (section 2.2.9.1.2.1.1).

FASTPATH_UPDATETYPE_SYNCHRONIZE

0x3

Indicates a Fast-Path Synchronize Update (section 2.2.9.1.2.1.3).

FASTPATH_UPDATETYPE_SURFCMDS

0x4

Indicates a Fast-Path Surface Commands Update (section 2.2.9.1.2.1.10).

FASTPATH_UPDATETYPE_PTR_NULL

0x5

Indicates a Fast-Path System Pointer Hidden Update (section 2.2.9.1.2.1.5).

FASTPATH_UPDATETYPE_PTR_DEFAULT

0x6

Indicates a Fast-Path System Pointer Default Update (section 2.2.9.1.2.1.6).

FASTPATH_UPDATETYPE_PTR_POSITION

0x8

Indicates a Fast-Path Pointer Position Update (section 2.2.9.1.2.1.4).

FASTPATH_UPDATETYPE_COLOR

0x9

Indicates a Fast-Path Color Pointer Update (section 2.2.9.1.2.1.7).

FASTPATH_UPDATETYPE_CACHED

0xA

Indicates a Fast-Path Cached Pointer Update (section 2.2.9.1.2.1.9).

FASTPATH_UPDATETYPE_POINTER

0xB

Indicates a Fast-Path New Pointer Update (section 2.2.9.1.2.1.8).

FASTPATH_UPDATETYPE_LARGE_POINTER

0xC

Indicates a Fast-Path Large Pointer Update (section 2.2.9.1.2.1.11).

fragmentation (2 bits): A 2-bit, unsigned integer that specifies the fast-path fragment sequencing information. Support for fast-path fragmentation is specified in the Multifragment Update Capability Set (section 2.2.7.2.6).

Flag (2 bits)

Meaning

FASTPATH_FRAGMENT_SINGLE

0x0

The fast-path data in the updateData field is not part of a sequence of fragments.

FASTPATH_FRAGMENT_LAST

0x1

The fast-path data in the updateData field contains the last fragment in a sequence of fragments.

FASTPATH_FRAGMENT_FIRST

0x2

The fast-path data in the updateData field contains the first fragment in a sequence of fragments.

FASTPATH_FRAGMENT_NEXT

0x3

The fast-path data in the updateData field contains the second or subsequent fragment in a sequence of fragments.

compression (2 bits): A 2-bit, unsigned integer that specifies compression parameters.

Flag (2 bits)

Meaning

FASTPATH_OUTPUT_COMPRESSION_USED

0x2

Indicates that the compressionFlags field is present.

compressionFlags (1 byte):  An 8-bit, unsigned integer. Optional compression flags. The flags used in this field are exactly the same as the flags used in the compressedType field in the Share Data Header (section 2.2.8.1.1.1.2) and have the same meaning.

size (2 bytes):  A 16-bit, unsigned integer. The size in bytes of the data in the updateData field.

updateData (variable): Optional and variable-length data specific to the update.