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).
|
|
|
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
2 |
|
|
|
|
|
|
|
|
|
3 |
|
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
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
91
0
1
2
3
4
5
6
7
8
92
0
1
2
3
4
5
6
7
8
93
0
1updateCode
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.