2.2.2.2.1.2.2 Cache Bitmap - Revision 1 (CACHE_BITMAP_ORDER)
The Cache Bitmap - Revision 1 Secondary Drawing Order is used by the server to instruct the client to store a bitmap in a particular Bitmap Cache entry. This order only supports memory-based bitmap caching. Support for the Revision 1 bitmap caches (section 3.1.1.1.1) is specified in the Revision 1 Bitmap Cache Capability Set ([MS-RDPBCGR] section 2.2.7.1.4.1).
|
|
|
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
2 |
|
|
|
|
|
|
|
|
|
3 |
|
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
header |
|||||||||||||||||||||||||||||||
... |
cacheId |
pad1Octet |
|||||||||||||||||||||||||||||
bitmapWidth |
bitmapHeight |
bitmapBitsPerPel |
bitmapLength |
||||||||||||||||||||||||||||
... |
cacheIndex |
bitmapComprHdr (optional) |
|||||||||||||||||||||||||||||
... |
|||||||||||||||||||||||||||||||
... |
bitmapDataStream (variable) |
||||||||||||||||||||||||||||||
... |
header (6 bytes): The Secondary Drawing Order Header (section 2.2.2.2.1.2.1.1). The embedded orderType field MUST be set to one of the following values.
-
Value
Meaning
TS_CACHE_BITMAP_UNCOMPRESSED
0x00
The bitmap data in the bitmapDataStream field is uncompressed.
TS_CACHE_BITMAP_COMPRESSED
0x02
The bitmap data in the bitmapDataStream field is compressed.
-
The embedded extraFlags field MAY contain the following flag.
-
Value
Meaning
NO_BITMAP_COMPRESSION_HDR
0x0400
Indicates that the bitmapComprHdr field is not present (removed for bandwidth efficiency to save 8 bytes).
cacheId (1 byte): An 8-bit, unsigned integer. The ID of the bitmap cache in which the bitmap data MUST be stored. This value MUST be in the range 0 to 2 (inclusive).
pad1Octet (1 byte): An 8-bit, unsigned integer. Padding. Values in this field are arbitrary and MUST be ignored.
bitmapWidth (1 byte): An 8-bit, unsigned integer. The width of the bitmap in pixels.
bitmapHeight (1 byte): An 8-bit, unsigned integer. The height of the bitmap in pixels.
bitmapBitsPerPel (1 byte): An 8-bit, unsigned integer. The color depth of the bitmap data in bits per pixel. This field MUST be one of the following values.
-
Value
Meaning
0x08
8-bit color depth.
0x10
16-bit color depth.
0x18
24-bit color depth.
0x20
32-bit color depth.
bitmapLength (2 bytes): A 16-bit, unsigned integer. The size in bytes of the data in the bitmapComprHdr and bitmapDataStream fields.
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. This value 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 1 Bitmap Cache Capability Set ([MS-RDPBCGR] section 2.2.7.1.4.1) by the Cache0Entries, Cache1Entries, and Cache2Entries fields.
bitmapComprHdr (8 bytes): Optional Compressed Data Header structure (see [MS-RDPBCGR] section 2.2.9.1.1.3.1.2.3) describing the bitmap data in the bitmapDataStream. This field MUST be present if the TS_CACHE_BITMAP_COMPRESSED (0x02) flag is present in the header field, but the NO_BITMAP_COMPRESSION_HDR (0x0400) flag is not.
bitmapDataStream (variable): A variable-length byte array containing bitmap data (the format of this data is defined in [MS-RDPBCGR] section 2.2.9.1.1.3.1.2.2).