2.2.7.1.3 Order Capability Set (TS_ORDER_CAPABILITYSET)
The TS_ORDER_CAPABILITYSET structure advertises support for primary drawing order-related capabilities and is based on the capability set specified in [T128] section 8.2.5 (for more information about primary drawing orders, see [MS-RDPEGDI] section 2.2.2.2.1.1). This capability is sent by both client and server.
|
|
|
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
2 |
|
|
|
|
|
|
|
|
|
3 |
|
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
capabilitySetType |
lengthCapability |
||||||||||||||||||||||||||||||
terminalDescriptor (16 bytes) |
|||||||||||||||||||||||||||||||
... |
|||||||||||||||||||||||||||||||
... |
|||||||||||||||||||||||||||||||
pad4octetsA |
|||||||||||||||||||||||||||||||
desktopSaveXGranularity |
desktopSaveYGranularity |
||||||||||||||||||||||||||||||
pad2octetsA |
maximumOrderLevel |
||||||||||||||||||||||||||||||
numberFonts |
orderFlags |
||||||||||||||||||||||||||||||
orderSupport (32 bytes) |
|||||||||||||||||||||||||||||||
... |
|||||||||||||||||||||||||||||||
... |
|||||||||||||||||||||||||||||||
textFlags |
orderSupportExFlags |
||||||||||||||||||||||||||||||
pad4octetsB |
|||||||||||||||||||||||||||||||
desktopSaveSize |
|||||||||||||||||||||||||||||||
pad2octetsC |
pad2octetsD |
||||||||||||||||||||||||||||||
textANSICodePage |
pad2octetsE |
capabilitySetType (2 bytes): A 16-bit, unsigned integer. The type of the capability set. This field MUST be set to CAPSTYPE_ORDER (3).
lengthCapability (2 bytes): A 16-bit, unsigned integer. The length in bytes of the capability data, including the size of the capabilitySetType and lengthCapability fields.
terminalDescriptor (16 bytes): A 16-element array of 8-bit, unsigned integers. Terminal descriptor. This field is ignored and SHOULD be set to all zeros.
pad4octetsA (4 bytes): A 32-bit, unsigned integer. Padding. Values in this field MUST be ignored.
desktopSaveXGranularity (2 bytes): A 16-bit, unsigned integer. X granularity used in conjunction with the SaveBitmap Primary Drawing Order ([MS-RDPEGDI] section 2.2.2.2.1.1.2.12). This value is ignored and assumed to be 1.
desktopSaveYGranularity (2 bytes): A 16-bit, unsigned integer. Y granularity used in conjunction with the SaveBitmap Primary Drawing Order ([MS-RDPEGDI] section 2.2.2.2.1.1.2.12). This value is ignored and assumed to be 20.
pad2octetsA (2 bytes): A 16-bit, unsigned integer. Padding. Values in this field MUST be ignored.
maximumOrderLevel (2 bytes): A 16-bit, unsigned integer. Maximum order level. This value is ignored and SHOULD be set to ORD_LEVEL_1_ORDERS (1).
numberFonts (2 bytes): A 16-bit, unsigned integer. Number of fonts. This value is ignored and SHOULD be set to zero.
orderFlags (2 bytes): A 16-bit, unsigned integer. A 16-bit unsigned integer. Support for drawing order options.
-
Flag
Meaning
NEGOTIATEORDERSUPPORT
0x0002
Indicates support for specifying supported drawing orders in the orderSupport field. This flag MUST be set.
ZEROBOUNDSDELTASSUPPORT
0x0008
Indicates support for the TS_ZERO_BOUNDS_DELTAS (0x20) flag ([MS-RDPEGDI] section 2.2.2.2.1.1.2). The client MUST set this flag.
COLORINDEXSUPPORT
0x0020
Indicates support for sending color indices (not RGB values) in orders.
SOLIDPATTERNBRUSHONLY
0x0040
Indicates that this party can receive only solid and pattern brushes.
ORDERFLAGS_EXTRA_FLAGS
0x0080
Indicates that the orderSupportExFlags field contains valid data.
orderSupport (32 bytes): An array of 32 bytes indicating support for various primary drawing orders. The indices of this array are the negotiation indices for the primary orders specified in [MS-RDPEGDI] section 2.2.2.2.1.1.2.
-
Negotiation index
Primary drawing order or orders
TS_NEG_DSTBLT_INDEX
0x00
DstBlt Primary Drawing Order ([MS-RDPEGDI] section 2.2.2.2.1.1.2.1).
TS_NEG_PATBLT_INDEX
0x01
PatBlt Primary Drawing Order ([MS-RDPEGDI] section 2.2.2.2.1.1.2.3) and OpaqueRect Primary Drawing Order ([MS-RDPEGDI] section 2.2.2.2.1.1.2.5).
TS_NEG_SCRBLT_INDEX
0x02
ScrBlt Primary Drawing Order ([MS-RDPEGDI] section 2.2.2.2.1.1.2.7).<26>
TS_NEG_MEMBLT_INDEX
0x03
MemBlt Primary Drawing Order ([MS-RDPEGDI] section 2.2.2.2.1.1.2.9).<27>
TS_NEG_MEM3BLT_INDEX
0x04
Mem3Blt Primary Drawing Order ([MS-RDPEGDI] section 2.2.2.2.1.1.2.10).
UnusedIndex1
0x05
The contents of the byte at this index MUST be ignored.
UnusedIndex2
0x06
The contents of the byte at this index MUST be ignored.
TS_NEG_DRAWNINEGRID_INDEX
0x07
DrawNineGrid Primary Drawing Order ([MS-RDPEGDI] section 2.2.2.2.1.1.2.21).
TS_NEG_LINETO_INDEX
0x08
LineTo Primary Drawing Order ([MS-RDPEGDI] section 2.2.2.2.1.1.2.11).
TS_NEG_MULTI_DRAWNINEGRID_INDEX
0x09
MultiDrawNineGrid Primary Drawing Order ([MS-RDPEGDI] section 2.2.2.2.1.1.2.22).
UnusedIndex3
0x0A
The contents of the byte at this index MUST be ignored.
TS_NEG_SAVEBITMAP_INDEX
0x0B
SaveBitmap Primary Drawing Order ([MS-RDPEGDI] section 2.2.2.2.1.1.2.12).
UnusedIndex4
0x0C
The contents of the byte at this index MUST be ignored.
UnusedIndex5
0x0D
The contents of the byte at this index MUST be ignored.
UnusedIndex6
0x0E
The contents of the byte at this index MUST be ignored.
TS_NEG_MULTIDSTBLT_INDEX
0x0F
MultiDstBlt Primary Drawing Order ([MS-RDPEGDI] section 2.2.2.2.1.1.2.2).
TS_NEG_MULTIPATBLT_INDEX
0x10
MultiPatBlt Primary Drawing Order ([MS-RDPEGDI] section 2.2.2.2.1.1.2.4).
TS_NEG_MULTISCRBLT_INDEX
0x11
MultiScrBlt Primary Drawing Order ([MS-RDPEGDI] section 2.2.2.2.1.1.2.8).
TS_NEG_MULTIOPAQUERECT_INDEX
0x12
MultiOpaqueRect Primary Drawing Order ([MS-RDPEGDI] section 2.2.2.2.1.1.2.6).
TS_NEG_FAST_INDEX_INDEX
0x13
FastIndex Primary Drawing Order ([MS-RDPEGDI] section 2.2.2.2.1.1.2.14).
TS_NEG_POLYGON_SC_INDEX
0x14
PolygonSC Primary Drawing Order ([MS-RDPEGDI] section 2.2.2.2.1.1.2.16) and PolygonCB Primary Drawing Order ([MS-RDPEGDI] section 2.2.2.2.1.1.2.17).
TS_NEG_POLYGON_CB_INDEX
0x15
PolygonCB Primary Drawing Order ([MS-RDPEGDI] section 2.2.2.2.1.1.2.17) and PolygonSC Primary Drawing Order ([MS-RDPEGDI] section 2.2.2.2.1.1.2.16).
TS_NEG_POLYLINE_INDEX
0x16
Polyline Primary Drawing Order ([MS-RDPEGDI] section 2.2.2.2.1.1.2.18).
UnusedIndex7
0x17
The contents of the byte at this index MUST be ignored.
TS_NEG_FAST_GLYPH_INDEX
0x18
FastGlyph Primary Drawing Order ([MS-RDPEGDI] section 2.2.2.2.1.1.2.15).
TS_NEG_ELLIPSE_SC_INDEX
0x19
EllipseSC Primary Drawing Order ([MS-RDPEGDI] section 2.2.2.2.1.1.2.19) and EllipseCB Primary Drawing Order ([MS-RDPEGDI] section 2.2.2.2.1.1.2.20).
TS_NEG_ELLIPSE_CB_INDEX
0x1A
EllipseCB Primary Drawing Order ([MS-RDPEGDI] section 2.2.2.2.1.1.2.20) and EllipseSC Primary Drawing Order ([MS-RDPEGDI] section 2.2.2.2.1.1.2.19).
TS_NEG_INDEX_INDEX
0x1B
GlyphIndex Primary Drawing Order ([MS-RDPEGDI] section 2.2.2.2.1.1.2.13).
UnusedIndex8
0x1C
The contents of the byte at this index MUST be ignored.
UnusedIndex9
0x1D
The contents of the byte at this index MUST be ignored.
UnusedIndex10
0x1E
The contents of the byte at this index MUST be ignored.
UnusedIndex11
0x1F
The contents of the byte at this index MUST be ignored.
-
If an order is supported, the byte at the given index MUST contain the value 0x01. Any order not supported by the client causes the server to spend more time and bandwidth using workarounds, such as other primary orders or simply sending screen bitmap data in a Bitmap Update (sections 2.2.9.1.1.3.1.2 and 2.2.9.1.2.1.2). If no primary drawing orders are supported, this array MUST be initialized to all zeros.
textFlags (2 bytes): A 16-bit, unsigned integer. Values in this field MUST be ignored.
orderSupportExFlags (2 bytes): A 16-bit, unsigned integer. Extended order support flags.
-
Flag
Meaning
ORDERFLAGS_EX_CACHE_BITMAP_REV3_SUPPORT
0x0002
The Cache Bitmap (Revision 3) Secondary Drawing Order ([MS-RDPEGDI] section 2.2.2.2.1.2.8) is supported.
ORDERFLAGS_EX_ALTSEC_FRAME_MARKER_SUPPORT
0x0004
The Frame Marker Alternate Secondary Drawing Order ([MS-RDPEGDI] section 2.2.2.2.1.3.7) is supported.
pad4octetsB (4 bytes): A 32-bit, unsigned integer. Padding. Values in this field MUST be ignored.
desktopSaveSize (4 bytes): A 32-bit, unsigned integer. The maximum usable size of bitmap space for bitmap packing in the SaveBitmap Primary Drawing Order ([MS-RDPEGDI] section 2.2.2.2.1.1.2.12). This field is ignored by the client and assumed to be 230400 bytes (480 * 480).
pad2octetsC (2 bytes): A 16-bit, unsigned integer. Padding. Values in this field MUST be ignored.
pad2octetsD (2 bytes): A 16-bit, unsigned integer. Padding. Values in this field MUST be ignored.
textANSICodePage (2 bytes): A 16-bit, unsigned integer. ANSI code page descriptor being used by the client (for a list of code pages, see [MSDN-CP]). This field is ignored by the client and SHOULD be set to zero by the server.
pad2octetsE (2 bytes): A 16-bit, unsigned integer. Padding. Values in this field MUST be ignored.