2.2.2.2.1.2.8 Cache Bitmap - Revision 3 (CACHE_BITMAP_REV3_ORDER)
The Cache Bitmap - Revision 3 Secondary Drawing Order is used by the server to instruct the client to store a bitmap in a particular Bitmap Cache entry. This order supports persistent disk bitmap caching and also enables the use of the bitmap codecs specified in the Bitmap Codec Capability Set (see [MS-RDPBCGR] section 2.2.7.2.10). Support for the Cache Bitmap - Revision 3 Secondary Drawing Order is specified in the Order Capability Set (see [MS-RDPBCGR] section 2.2.7.1.3).
|
|
|
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
2 |
|
|
|
|
|
|
|
|
|
3 |
|
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
header |
|||||||||||||||||||||||||||||||
... |
cacheIndex |
||||||||||||||||||||||||||||||
key1 |
|||||||||||||||||||||||||||||||
key2 |
|||||||||||||||||||||||||||||||
bitmapData (variable) |
|||||||||||||||||||||||||||||||
... |
header (6 bytes): A Secondary Drawing Order Header (see section 2.2.2.2.1.2.1.1). The embedded orderType field MUST be set to TS_CACHE_BITMAP_COMPRESSED_REV3 (8).
-
The format of the embedded extraFlags field is specified 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
1cacheId
bitsPerPixelId
flags
-
cacheId (3 bits): A 3-bit, unsigned integer. The ID of the bitmap cache in which bitmap data MUST be stored. This value MUST be greater than or equal to 0 and less than the number of bitmap caches being used for the connection. The number of bitmap caches being used is specified by the NumCellCaches field of the Revision 2 Bitmap Cache Capability Set ([MS-RDPBCGR] section 2.2.7.1.4.2).
-
bitsPerPixelId (4 bits): A 4-bit, unsigned integer. The color depth of the bitmap data in bits per pixel. It MUST be one of the following values.
-
Value
Meaning
CBR23_8BPP
0x3
8 bits per pixel
CBR23_16BPP
0x4
16 bits per pixel
CBR23_24BPP
0x5
24 bits per pixel
CBR23_32BPP
0x6
32 bits per pixel
-
-
flags (9 bits): A 9-bit, unsigned integer. Operational flags.
-
Value
Meaning
CBR3_IGNORABLE_FLAG
0x08
This flag has no meaning and its value is ignored by the client.
CBR3_DO_NOT_CACHE
0x10
Implies that the cacheIndex field MUST be ignored, and the bitmap MUST be placed in the last entry of the bitmap cache specified by the cacheId field.
-
cacheIndex (2 bytes): A 16-bit unsigned integer. The index of the target entry in the destination bitmap cache (specified by the cacheId field) where the bitmap data MUST be stored. If the CBR3_DO_NOT_CACHE flag is not set in the header field, the bitmap cache index MUST be greater than or equal to 0 and less than the maximum number of entries allowed in the destination bitmap cache. The maximum number of entries allowed in each individual bitmap cache is specified in the Revision 2 Bitmap Cache Capability Set ([MS-RDPBCGR] section 2.2.7.1.4.2) by the BitmapCache0CellInfo, BitmapCache1CellInfo, BitmapCache2CellInfo, BitmapCache3CellInfo, and BitmapCache4CellInfo fields. If the CBR3_DO_NOT_CACHE flag is set, the cacheIndex MUST be set to BITMAPCACHE_WAITING_LIST_INDEX (32767).
key1 (4 bytes): A 32-bit, unsigned integer. The low 32 bits of the 64-bit persistent bitmap cache key.
key2 (4 bytes): A 32-bit, unsigned integer. The high 32 bits of the 64-bit persistent bitmap cache key.
bitmapData (variable): An Extended Bitmap Data (see [MS-RDPBCGR] section 2.2.9.2.1.1) structure that contains an encoded bitmap image.