2.2.7.1.1 General Capability Set (TS_GENERAL_CAPABILITYSET)

The TS_GENERAL_CAPABILITYSET structure is used to advertise general characteristics and is based on the capability set specified in [T128] section 8.2.3. This capability is sent by both client and server.


0


1


2


3


4


5


6


7


8


9

1
0


1


2


3


4


5


6


7


8


9

2
0


1


2


3


4


5


6


7


8


9

3
0


1

capabilitySetType

lengthCapability

osMajorType

osMinorType

protocolVersion

pad2octetsA

compressionTypes

extraFlags

updateCapabilityFlag

remoteUnshareFlag

compressionLevel

refreshRectSupport

suppressOutputSupport

capabilitySetType (2 bytes): A 16-bit, unsigned integer. The type of the capability set. This field MUST be set to CAPSTYPE_GENERAL (1).

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.

osMajorType (2 bytes): A 16-bit, unsigned integer. The type of platform.

Value

Meaning

OSMAJORTYPE_UNSPECIFIED

0x0000

Unspecified platform

OSMAJORTYPE_WINDOWS

0x0001

Windows platform

OSMAJORTYPE_OS2

0x0002

OS/2 platform

OSMAJORTYPE_MACINTOSH

0x0003

Macintosh platform

OSMAJORTYPE_UNIX

0x0004

UNIX platform

OSMAJORTYPE_IOS

0x0005

iOS platform

OSMAJORTYPE_OSX

0x0006

OS X platform

OSMAJORTYPE_ANDROID

0x0007

Android platform

OSMAJORTYPE_CHROME_OS

0x0008

Chrome OS platform

osMinorType (2 bytes): A 16-bit, unsigned integer. The version of the platform specified in the osMajorType field.

Value

Meaning

OSMINORTYPE_UNSPECIFIED

0x0000

Unspecified version

OSMINORTYPE_WINDOWS_31X

0x0001

Windows 3.1x

OSMINORTYPE_WINDOWS_95

0x0002

Windows 95

OSMINORTYPE_WINDOWS_NT

0x0003

Windows NT

OSMINORTYPE_OS2_V21

0x0004

OS/2 2.1

OSMINORTYPE_POWER_PC

0x0005

PowerPC

OSMINORTYPE_MACINTOSH

0x0006

Macintosh

OSMINORTYPE_NATIVE_XSERVER

0x0007

Native X Server

OSMINORTYPE_PSEUDO_XSERVER

0x0008

Pseudo X Server

OSMINORTYPE_WINDOWS RT

0x0009

Windows RT

protocolVersion (2 bytes): A 16-bit, unsigned integer. The protocol version. This field MUST be set to TS_CAPS_PROTOCOLVERSION (0x0200).

pad2octetsA (2 bytes): A 16-bit, unsigned integer. Padding. Values in this field MUST be ignored.

compressionTypes (2 bytes): A 16-bit, unsigned integer. General compression types. This field MUST be set to zero.

extraFlags (2 bytes): A 16-bit, unsigned integer. General capability information.

All RDP versions, except for RDP 4.0, support the following flags.

Flag

Meaning

FASTPATH_OUTPUT_SUPPORTED

0x0001

Advertiser supports fast-path output.<24>

NO_BITMAP_COMPRESSION_HDR

0x0400

Advertiser supports excluding the 8-byte Compressed Data Header (section 2.2.9.1.1.3.1.2.3) from the Bitmap Data (section 2.2.9.1.1.3.1.2.2) structure or the Cache Bitmap (Revision 2) Secondary Drawing Order ([MS-RDPEGDI] section 2.2.2.2.1.2.3).

All RDP versions, except for RDP 4.0 and 5.0, support the following additional flags.

Flag

Meaning

LONG_CREDENTIALS_SUPPORTED

0x0004

Advertiser supports long-length credentials for the user name, password, or domain name in the Save Session Info PDU (section 2.2.10.1).<25>

All RDP versions, except for RDP 4.0, 5.0 and 5.1, support the following additional flags.

Flag

Meaning

AUTORECONNECT_SUPPORTED

0x0008

Advertiser supports auto-reconnection (section 5.5).

ENC_SALTED_CHECKSUM

0x0010

Advertiser supports salted MAC generation (section 5.3.6.1.1).

updateCapabilityFlag (2 bytes): A 16-bit, unsigned integer. Support for update capability. This field MUST be set to zero.

remoteUnshareFlag (2 bytes): A 16-bit, unsigned integer. Support for remote unsharing. This field MUST be set to zero.

compressionLevel (2 bytes): A 16-bit, unsigned integer. General compression level. This field MUST be set to zero.

refreshRectSupport (1 byte): An 8-bit, unsigned integer. Server-only flag that indicates whether the Refresh Rect PDU (section 2.2.11.2) is supported.

Value

Meaning

FALSE

0x00

Server does not support Refresh Rect PDU.

TRUE

0x01

Server supports Refresh Rect PDU.

suppressOutputSupport (1 byte): An 8-bit, unsigned integer. Server-only flag that indicates whether the Suppress Output PDU (section 2.2.11.3) is supported.

Value

Meaning

FALSE

0x00

Server does not support Suppress Output PDU.

TRUE

0x01

Server supports Suppress Output PDU.