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.
|
|
|
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
2 |
|
|
|
|
|
|
|
|
|
3 |
|
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
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>