2.2.1.11.1.1.1 Extended Info Packet (TS_EXTENDED_INFO_PACKET)

The TS_EXTENDED_INFO_PACKET structure contains user information specific to all RDP versions, except for RDP 4.0.


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

clientAddressFamily

cbClientAddress

clientAddress (variable)

...

cbClientDir

clientDir (variable)

...

clientTimeZone (172 bytes, optional)

...

...

clientSessionId (optional)

performanceFlags (optional)

cbAutoReconnectCookie (optional)

autoReconnectCookie (28 bytes, optional)

...

...

...

reserved1 (optional)

reserved2 (optional)

cbDynamicDSTTimeZoneKeyName (optional)

dynamicDSTTimeZoneKeyName (variable)

...

dynamicDaylightTimeDisabled (optional)

clientAddressFamily (2 bytes): A 16-bit, unsigned integer. The numeric socket descriptor for the client address type.

Value

Meaning

AF_INET

0x00002

The clientAddress field contains an IPv4 address.

AF_INET6

0x0017

The clientAddress field contains an IPv6 address.

cbClientAddress (2 bytes): A 16-bit, unsigned integer. The size in bytes of the character data in the clientAddress field. This size includes the length of the mandatory null terminator.

clientAddress (variable): Variable-length textual representation of the client IPv4 or IPv6 address. The maximum allowed length (including the mandatory null terminator) is 64 bytes for RDP 5.0, 5.1, 5.2, and 6.0, and 80 bytes for all other RDP versions.

cbClientDir (2 bytes): A 16-bit, unsigned integer. The size in bytes of the character data in the clientDir field. This size includes the length of the mandatory null terminator.

clientDir (variable): Variable-length directory that contains either (a) the folder path on the client machine from which the client software is being run, or (b) the full path of the software module implementing the client (see section 4.1.10 for an example). The maximum allowed length is 512 bytes (including the mandatory null terminator).

clientTimeZone (172 bytes): A TS_TIME_ZONE_INFORMATION structure (section 2.2.1.11.1.1.1.1) that contains time zone information for a client. This field is not read by RDP 5.0 and 5.1 servers. If this field is not present, then all of the subsequent fields MUST NOT be present.

clientSessionId (4 bytes): A 32-bit, unsigned integer. This field was added in RDP 5.1 and is currently ignored by the server. It SHOULD be set to zero. If this field is present, then the clientTimeZone field MUST also be present. If this field is not present, then all of the subsequent fields MUST NOT be present.

performanceFlags (4 bytes): A 32-bit, unsigned integer. It specifies a list of server desktop shell features to enable or disable in the session (with the goal of optimizing bandwidth usage). This field is not read by RDP 5.0 servers. If this field is present, then the clientSessionId field MUST also be present. If this field is not present, then all of the subsequent fields MUST NOT be present.

Flag

Meaning

PERF_DISABLE_WALLPAPER

0x00000001

Disable desktop wallpaper.

PERF_DISABLE_FULLWINDOWDRAG

0x00000002

Disable full-window drag (only the window outline is displayed when the window is moved).

PERF_DISABLE_MENUANIMATIONS

0x00000004

Disable menu animations.

PERF_DISABLE_THEMING

0x00000008

Disable user interface themes.

PERF_RESERVED1

0x00000010

An unused flag that is reserved for future use. This flag SHOULD be ignored by the server.

PERF_DISABLE_CURSOR_SHADOW

0x00000020

Disable mouse cursor shadows.

PERF_DISABLE_CURSORSETTINGS

0x00000040

Disable cursor blinking.

PERF_ENABLE_FONT_SMOOTHING

0x00000080

Enable font smoothing.<18>

PERF_ENABLE_DESKTOP_COMPOSITION

0x00000100

Enable Desktop Composition ([MS-RDPEDC] sections 1, 2 and 3; and [MS-RDPCR2] sections 1, 2 and 3). The usage of Desktop Composition in a remote session requires that the color depth be 32 bits per pixel (bpp). (See the description of the highColorDepth, supportedColorDepths and earlyCapabilityFlags (specifically the RNS_UD_CS_WANT_32BPP_SESSION (0x0002) flag) fields in section 2.2.1.3.2 for background on setting the remote session color depth to 32 bpp.)<19>

PERF_RESERVED2

0x80000000

An unused flag that is reserved for future use. This flag SHOULD be ignored by the server.

If the connectionType field of the Client Core Data (section 2.2.1.3.2) is set to CONNECTION_TYPE_AUTODETECT (0x07), and the client indicates support for network characteristics detection by specifying the RNS_UD_CS_SUPPORT_NETCHAR_AUTODETECT (0x0080) flag in the earlyCapabilityFlags field of the Client Core Data, then the server SHOULD ignore the contents of the performanceFlags field if the connection type can be determined (using the PDUs specified in section 2.2.14) and SHOULD instead determine an appropriate set of performance flags to apply to the remote session based on the detected connection type.

cbAutoReconnectCookie (2 bytes): A 16-bit, unsigned integer. The size in bytes of the cookie specified by the autoReconnectCookie field. This field MUST be set to zero or 0x001C. The cbAutoReconnectCookie field is not read by RDP 5.0 and 5.1 servers. If this field is present, then the performanceFlags field MUST also be present. If this field is not present, then all of the subsequent fields MUST NOT be present.

autoReconnectCookie (28 bytes): Buffer containing an ARC_CS_PRIVATE_PACKET structure (section 2.2.4.3). This buffer is a unique cookie that allows a disconnected client to seamlessly reconnect to a previously established session (see section 5.5 for more details). The autoReconnectCookie field is not read by RDP 5.0 and 5.1 servers. This field MUST be present if the cbAutoReconnectCookie field is nonzero.

reserved1 (2 bytes): This field is reserved for future use and has no effect on RDP wire traffic. It SHOULD<20> be set to zero. If this field is present, the cbAutoReconnectCookie and reserved2 fields MUST also be present. If this field is not present, then all of the subsequent fields MUST NOT be present.

reserved2 (2 bytes): This field is reserved for future use and has no effect on RDP wire traffic. It MUST be set to zero. If this field is present, then the reserved1 field MUST also be present. If this field is not present, then all of the subsequent fields MUST NOT be present.

cbDynamicDSTTimeZoneKeyName (2 bytes): A 16-bit, unsigned integer. The size, in bytes, of the dynamicDSTTimeZoneKeyName field. This field is not read by RDP 5.0, 5.1, 5.2, 6.0, 6.1, 7.0, and 7.1 servers. If this field is present, then the reserved2 and dynamicDaylightTimeDisabled fields MUST also be present. If this field is not present, then all of the subsequent fields MUST NOT be present.<21>

dynamicDSTTimeZoneKeyName (variable): A variable-length array of Unicode characters with no terminating null, containing the descriptive name of the Dynamic DST time zone on the client. This field is not read by RDP 5.0, 5.1, 5.2, 6.0, 6.1, 7.0, and 7.1 servers. The maximum allowed length is 254 bytes. This field MUST be present if the cbDynamicDSTTimeZoneKeyName field is nonzero.<22>

dynamicDaylightTimeDisabled (2 bytes): A 16-bit, unsigned integer that specifies whether Dynamic DST MUST be disabled in the remote session. This field is not read by RDP 5.0, 5.1, 5.2, 6.0, 6.1, 7.0, and 7.1 servers.

Value

Meaning

FALSE

0x0000

Dynamic DST MUST be enabled in the remote session if the feature is supported.

TRUE

0x0001

Dynamic DST MUST be disabled in the remote session.

If this field is present, then the cbDynamicDSTTimeZoneKeyName field MUST also be present. If this field is not present, then all of the subsequent fields MUST NOT be present.<23>