3.3.1.4 Bitmap Cache
The Bitmap Cache ADM element is used to store bitmaps of arbitrary dimensions. Each bitmap is associated with a key and is stored in a variable-length slot (identified by a one-based slot index). The size of the bitmap cache is capped at 100 MB or 16 MB, depending on whether the RDPGFX_CAPS_FLAG_THINCLIENT (0x00000001) flag or RDPGFX_CAPS_FLAG_SMALL_CACHE (0x00000002) flag is specified in the flags field of an RDPGFX_CAPSET_VERSION8 (section 2.2.3.1), RDPGFX_CAPSET_VERSION81 (section 2.2.3.2), RDPGFX_CAPSET_VERSION10 (section 2.2.3.3), RDPGFX_CAPSET_VERSION102 (section 2.2.3.5), RDPGFX_CAPSET_VERSION104 (section 2.2.3.7), RPDGFX_CAPSET_VERSION105 (section 2.2.3.8), RDPGFX_CAPSET_VERSION106 (section 2.2.3.9), or RDPGFX_CAPSET_VERSION107 (section 2.2.3.10) structure, which is encapsulated in the server-to-client RDPGFX_CAPS_CONFIRM_PDU (section 2.2.2.19) message. The size of the bitmap cache is constrained to 16MB in size when the RDPGFX_CAPSET_VERSION103 (section 2.2.3.6) structure is encapsulated in the server-to-client RDPGFX_CAPS_CONFIRM_PDU message. The maximum possible number of variable-length slots is 25,600 in the case of a 100 MB cache and 4,096 in the case of a 16 MB cache. The size of the bitmap data stored across all of the in-use variable-length slots at any point in time MUST NOT exceed the total size of the cache.