settings.h (63889B)
1/** 2 * FreeRDP: A Remote Desktop Protocol Implementation 3 * RDP Settings 4 * 5 * Copyright 2009-2011 Jay Sorg 6 * Copyright 2010-2012 Marc-Andre Moreau <marcandre.moreau@gmail.com> 7 * Copyright 2016 Armin Novak <armin.novak@gmail.com> 8 * 9 * Licensed under the Apache License, Version 2.0 (the "License"); 10 * you may not use this file except in compliance with the License. 11 * You may obtain a copy of the License at 12 * 13 * http://www.apache.org/licenses/LICENSE-2.0 14 * 15 * Unless required by applicable law or agreed to in writing, software 16 * distributed under the License is distributed on an "AS IS" BASIS, 17 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 18 * See the License for the specific language governing permissions and 19 * limitations under the License. 20 */ 21 22#ifndef FREERDP_SETTINGS_H 23#define FREERDP_SETTINGS_H 24 25#include <winpr/timezone.h> 26 27#include <freerdp/api.h> 28#include <freerdp/types.h> 29 30/* RAIL Support Level */ 31#define RAIL_LEVEL_SUPPORTED 0x00000001 32#define RAIL_LEVEL_DOCKED_LANGBAR_SUPPORTED 0x00000002 33#define RAIL_LEVEL_SHELL_INTEGRATION_SUPPORTED 0x00000004 34#define RAIL_LEVEL_LANGUAGE_IME_SYNC_SUPPORTED 0x00000008 35#define RAIL_LEVEL_SERVER_TO_CLIENT_IME_SYNC_SUPPORTED 0x00000010 36#define RAIL_LEVEL_HIDE_MINIMIZED_APPS_SUPPORTED 0x00000020 37#define RAIL_LEVEL_WINDOW_CLOAKING_SUPPORTED 0x00000040 38#define RAIL_LEVEL_HANDSHAKE_EX_SUPPORTED 0x00000080 39 40/* Performance Flags */ 41#define PERF_FLAG_NONE 0x00000000 42#define PERF_DISABLE_WALLPAPER 0x00000001 43#define PERF_DISABLE_FULLWINDOWDRAG 0x00000002 44#define PERF_DISABLE_MENUANIMATIONS 0x00000004 45#define PERF_DISABLE_THEMING 0x00000008 46#define PERF_DISABLE_CURSOR_SHADOW 0x00000020 47#define PERF_DISABLE_CURSORSETTINGS 0x00000040 48#define PERF_ENABLE_FONT_SMOOTHING 0x00000080 49#define PERF_ENABLE_DESKTOP_COMPOSITION 0x00000100 50 51/* Connection Types */ 52#define CONNECTION_TYPE_MODEM 0x01 53#define CONNECTION_TYPE_BROADBAND_LOW 0x02 54#define CONNECTION_TYPE_SATELLITE 0x03 55#define CONNECTION_TYPE_BROADBAND_HIGH 0x04 56#define CONNECTION_TYPE_WAN 0x05 57#define CONNECTION_TYPE_LAN 0x06 58#define CONNECTION_TYPE_AUTODETECT 0x07 59 60/* Client to Server (CS) data blocks */ 61#define CS_CORE 0xC001 62#define CS_SECURITY 0xC002 63#define CS_NET 0xC003 64#define CS_CLUSTER 0xC004 65#define CS_MONITOR 0xC005 66#define CS_MCS_MSGCHANNEL 0xC006 67#define CS_MONITOR_EX 0xC008 68#define CS_MULTITRANSPORT 0xC00A 69 70/* Server to Client (SC) data blocks */ 71#define SC_CORE 0x0C01 72#define SC_SECURITY 0x0C02 73#define SC_NET 0x0C03 74#define SC_MCS_MSGCHANNEL 0x0C04 75#define SC_MULTITRANSPORT 0x0C08 76 77/* RDP versions, see 78 * [MS-RDPBCGR] 2.2.1.3.2 Client Core Data (TS_UD_CS_CORE) 79 * [MS-RDPBCGR] 2.2.1.4.2 Server Core Data (TS_UD_SC_CORE) 80 */ 81typedef enum 82{ 83 RDP_VERSION_4 = 0x00080001, 84 RDP_VERSION_5_PLUS = 0x00080004, 85 RDP_VERSION_10_0 = 0x00080005, 86 RDP_VERSION_10_1 = 0x00080006, 87 RDP_VERSION_10_2 = 0x00080007, 88 RDP_VERSION_10_3 = 0x00080008, 89 RDP_VERSION_10_4 = 0x00080009, 90 RDP_VERSION_10_5 = 0x0008000a, 91 RDP_VERSION_10_6 = 0x0008000b, 92 RDP_VERSION_10_7 = 0x0008000C 93} RDP_VERSION; 94 95/* Color depth */ 96#define RNS_UD_COLOR_4BPP 0xCA00 97#define RNS_UD_COLOR_8BPP 0xCA01 98#define RNS_UD_COLOR_16BPP_555 0xCA02 99#define RNS_UD_COLOR_16BPP_565 0xCA03 100#define RNS_UD_COLOR_24BPP 0xCA04 101 102/* Secure Access Sequence */ 103#define RNS_UD_SAS_DEL 0xAA03 104 105/* Supported Color Depths */ 106#define RNS_UD_24BPP_SUPPORT 0x0001 107#define RNS_UD_16BPP_SUPPORT 0x0002 108#define RNS_UD_15BPP_SUPPORT 0x0004 109#define RNS_UD_32BPP_SUPPORT 0x0008 110 111/* Audio Mode */ 112#define AUDIO_MODE_REDIRECT 0 /* Bring to this computer */ 113#define AUDIO_MODE_PLAY_ON_SERVER 1 /* Leave at remote computer */ 114#define AUDIO_MODE_NONE 2 /* Do not play */ 115 116/* Early Capability Flags (Client to Server) */ 117#define RNS_UD_CS_SUPPORT_ERRINFO_PDU 0x0001 118#define RNS_UD_CS_WANT_32BPP_SESSION 0x0002 119#define RNS_UD_CS_SUPPORT_STATUSINFO_PDU 0x0004 120#define RNS_UD_CS_STRONG_ASYMMETRIC_KEYS 0x0008 121#define RNS_UD_CS_VALID_CONNECTION_TYPE 0x0020 122#define RNS_UD_CS_SUPPORT_MONITOR_LAYOUT_PDU 0x0040 123#if !defined(DEFINE_NO_DEPRECATED) 124#define RNS_UD_CS_SUPPORT_NETWORK_AUTODETECT 0x0080 /* DEPRECATED: Compatibility define */ 125#endif 126#define RNS_UD_CS_SUPPORT_NETCHAR_AUTODETECT 0x0080 127#define RNS_UD_CS_SUPPORT_DYNVC_GFX_PROTOCOL 0x0100 128#define RNS_UD_CS_SUPPORT_DYNAMIC_TIME_ZONE 0x0200 129#define RNS_UD_CS_SUPPORT_HEARTBEAT_PDU 0x0400 130 131/* Early Capability Flags (Server to Client) */ 132#define RNS_UD_SC_EDGE_ACTIONS_SUPPORTED 0x00000001 133#define RNS_UD_SC_DYNAMIC_DST_SUPPORTED 0x00000002 134 135/* Cluster Information Flags */ 136#define REDIRECTION_SUPPORTED 0x00000001 137#define REDIRECTED_SESSIONID_FIELD_VALID 0x00000002 138#define REDIRECTED_SMARTCARD 0x00000040 139 140#define REDIRECTION_VERSION1 0x00 141#define REDIRECTION_VERSION2 0x01 142#define REDIRECTION_VERSION3 0x02 143#define REDIRECTION_VERSION4 0x03 144#define REDIRECTION_VERSION5 0x04 145#define REDIRECTION_VERSION6 0x05 146 147#define MONITOR_PRIMARY 0x00000001 148 149/* Encryption Methods */ 150#define ENCRYPTION_METHOD_NONE 0x00000000 151#define ENCRYPTION_METHOD_40BIT 0x00000001 152#define ENCRYPTION_METHOD_128BIT 0x00000002 153#define ENCRYPTION_METHOD_56BIT 0x00000008 154#define ENCRYPTION_METHOD_FIPS 0x00000010 155 156/* Encryption Levels */ 157#define ENCRYPTION_LEVEL_NONE 0x00000000 158#define ENCRYPTION_LEVEL_LOW 0x00000001 159#define ENCRYPTION_LEVEL_CLIENT_COMPATIBLE 0x00000002 160#define ENCRYPTION_LEVEL_HIGH 0x00000003 161#define ENCRYPTION_LEVEL_FIPS 0x00000004 162 163/* Multitransport Types */ 164#define TRANSPORT_TYPE_UDP_FECR 0x00000001 165#define TRANSPORT_TYPE_UDP_FECL 0x00000004 166#define TRANSPORT_TYPE_UDP_PREFERRED 0x00000100 167 168/* Static Virtual Channel Options */ 169#define CHANNEL_OPTION_INITIALIZED 0x80000000 170#define CHANNEL_OPTION_ENCRYPT_RDP 0x40000000 171#define CHANNEL_OPTION_ENCRYPT_SC 0x20000000 172#define CHANNEL_OPTION_ENCRYPT_CS 0x10000000 173#define CHANNEL_OPTION_PRI_HIGH 0x08000000 174#define CHANNEL_OPTION_PRI_MED 0x04000000 175#define CHANNEL_OPTION_PRI_LOW 0x02000000 176#define CHANNEL_OPTION_COMPRESS_RDP 0x00800000 177#define CHANNEL_OPTION_COMPRESS 0x00400000 178#define CHANNEL_OPTION_SHOW_PROTOCOL 0x00200000 179#define CHANNEL_REMOTE_CONTROL_PERSISTENT 0x00100000 180 181/* Auto Reconnect Version */ 182#define AUTO_RECONNECT_VERSION_1 0x00000001 183 184/* Cookie Lengths */ 185#define MSTSC_COOKIE_MAX_LENGTH 9 186#define DEFAULT_COOKIE_MAX_LENGTH 0xFF 187 188/* Order Support */ 189#define NEG_DSTBLT_INDEX 0x00 190#define NEG_PATBLT_INDEX 0x01 191#define NEG_SCRBLT_INDEX 0x02 192#define NEG_MEMBLT_INDEX 0x03 193#define NEG_MEM3BLT_INDEX 0x04 194#define NEG_ATEXTOUT_INDEX 0x05 195#define NEG_AEXTTEXTOUT_INDEX 0x06 /* Must be ignored */ 196#define NEG_DRAWNINEGRID_INDEX 0x07 /* Must be ignored */ 197#define NEG_LINETO_INDEX 0x08 198#define NEG_MULTI_DRAWNINEGRID_INDEX 0x09 199#define NEG_OPAQUE_RECT_INDEX 0x0A /* Must be ignored */ 200#define NEG_SAVEBITMAP_INDEX 0x0B 201#define NEG_WTEXTOUT_INDEX 0x0C /* Must be ignored */ 202#define NEG_MEMBLT_V2_INDEX 0x0D /* Must be ignored */ 203#define NEG_MEM3BLT_V2_INDEX 0x0E /* Must be ignored */ 204#define NEG_MULTIDSTBLT_INDEX 0x0F 205#define NEG_MULTIPATBLT_INDEX 0x10 206#define NEG_MULTISCRBLT_INDEX 0x11 207#define NEG_MULTIOPAQUERECT_INDEX 0x12 208#define NEG_FAST_INDEX_INDEX 0x13 209#define NEG_POLYGON_SC_INDEX 0x14 210#define NEG_POLYGON_CB_INDEX 0x15 211#define NEG_POLYLINE_INDEX 0x16 212#define NEG_UNUSED23_INDEX 0x17 /* Must be ignored */ 213#define NEG_FAST_GLYPH_INDEX 0x18 214#define NEG_ELLIPSE_SC_INDEX 0x19 215#define NEG_ELLIPSE_CB_INDEX 0x1A 216#define NEG_GLYPH_INDEX_INDEX 0x1B 217#define NEG_GLYPH_WEXTTEXTOUT_INDEX 0x1C /* Must be ignored */ 218#define NEG_GLYPH_WLONGTEXTOUT_INDEX 0x1D /* Must be ignored */ 219#define NEG_GLYPH_WLONGEXTTEXTOUT_INDEX 0x1E /* Must be ignored */ 220#define NEG_UNUSED31_INDEX 0x1F /* Must be ignored */ 221 222/* Glyph Support Level */ 223#define GLYPH_SUPPORT_NONE 0x0000 224#define GLYPH_SUPPORT_PARTIAL 0x0001 225#define GLYPH_SUPPORT_FULL 0x0002 226#define GLYPH_SUPPORT_ENCODE 0x0003 227 228/* Gateway Usage Method */ 229#define TSC_PROXY_MODE_NONE_DIRECT 0x0 230#define TSC_PROXY_MODE_DIRECT 0x1 231#define TSC_PROXY_MODE_DETECT 0x2 232#define TSC_PROXY_MODE_DEFAULT 0x3 233#define TSC_PROXY_MODE_NONE_DETECT 0x4 234 235/* Gateway Credentials Source */ 236#define TSC_PROXY_CREDS_MODE_USERPASS 0x0 237#define TSC_PROXY_CREDS_MODE_SMARTCARD 0x1 238#define TSC_PROXY_CREDS_MODE_ANY 0x2 239 240/* Redirection Flags */ 241#define LB_TARGET_NET_ADDRESS 0x00000001 242#define LB_LOAD_BALANCE_INFO 0x00000002 243#define LB_USERNAME 0x00000004 244#define LB_DOMAIN 0x00000008 245#define LB_PASSWORD 0x00000010 246#define LB_DONTSTOREUSERNAME 0x00000020 247#define LB_SMARTCARD_LOGON 0x00000040 248#define LB_NOREDIRECT 0x00000080 249#define LB_TARGET_FQDN 0x00000100 250#define LB_TARGET_NETBIOS_NAME 0x00000200 251#define LB_TARGET_NET_ADDRESSES 0x00000800 252#define LB_CLIENT_TSV_URL 0x00001000 253#define LB_SERVER_TSV_CAPABLE 0x00002000 254#define LB_PASSWORD_IS_PK_ENCRYPTED 0x00004000 255#define LB_REDIRECTION_GUID 0x00008000 256#define LB_TARGET_CERTIFICATE 0x00010000 257 258#define LB_PASSWORD_MAX_LENGTH 512 259 260/* Keyboard Hook */ 261#define KEYBOARD_HOOK_LOCAL 0 262#define KEYBOARD_HOOK_REMOTE 1 263#define KEYBOARD_HOOK_FULLSCREEN_ONLY 2 264 265struct _TARGET_NET_ADDRESS 266{ 267 UINT32 Length; 268 LPWSTR Address; 269}; 270typedef struct _TARGET_NET_ADDRESS TARGET_NET_ADDRESS; 271 272/* Logon Error Info */ 273#define LOGON_MSG_DISCONNECT_REFUSED 0xFFFFFFF9 274#define LOGON_MSG_NO_PERMISSION 0xFFFFFFFA 275#define LOGON_MSG_BUMP_OPTIONS 0xFFFFFFFB 276#define LOGON_MSG_RECONNECT_OPTIONS 0xFFFFFFFC 277#define LOGON_MSG_SESSION_TERMINATE 0xFFFFFFFD 278#define LOGON_MSG_SESSION_CONTINUE 0xFFFFFFFE 279 280#define LOGON_FAILED_BAD_PASSWORD 0x00000000 281#define LOGON_FAILED_UPDATE_PASSWORD 0x00000001 282#define LOGON_FAILED_OTHER 0x00000002 283#define LOGON_WARNING 0x00000003 284 285/* Server Status Info */ 286#define STATUS_FINDING_DESTINATION 0x00000401 287#define STATUS_LOADING_DESTINATION 0x00000402 288#define STATUS_BRINGING_SESSION_ONLINE 0x00000403 289#define STATUS_REDIRECTING_TO_DESTINATION 0x00000404 290#define STATUS_VM_LOADING 0x00000501 291#define STATUS_VM_WAKING 0x00000502 292#define STATUS_VM_BOOTING 0x00000503 293 294/* Compression Flags */ 295#define PACKET_COMPR_TYPE_8K 0x00 296#define PACKET_COMPR_TYPE_64K 0x01 297#define PACKET_COMPR_TYPE_RDP6 0x02 298#define PACKET_COMPR_TYPE_RDP61 0x03 299#define PACKET_COMPR_TYPE_RDP8 0x04 300 301/* Desktop Rotation Flags */ 302#define ORIENTATION_LANDSCAPE 0 303#define ORIENTATION_PORTRAIT 90 304#define ORIENTATION_LANDSCAPE_FLIPPED 180 305#define ORIENTATION_PORTRAIT_FLIPPED 270 306 307/* ARC_CS_PRIVATE_PACKET */ 308typedef struct 309{ 310 UINT32 cbLen; 311 UINT32 version; 312 UINT32 logonId; 313 BYTE securityVerifier[16]; 314} ARC_CS_PRIVATE_PACKET; 315 316/* ARC_SC_PRIVATE_PACKET */ 317typedef struct 318{ 319 UINT32 cbLen; 320 UINT32 version; 321 UINT32 logonId; 322 BYTE arcRandomBits[16]; 323} ARC_SC_PRIVATE_PACKET; 324 325/* Certificates */ 326 327struct rdp_CertBlob 328{ 329 UINT32 length; 330 BYTE* data; 331}; 332typedef struct rdp_CertBlob rdpCertBlob; 333 334struct rdp_X509CertChain 335{ 336 UINT32 count; 337 rdpCertBlob* array; 338}; 339typedef struct rdp_X509CertChain rdpX509CertChain; 340 341struct rdp_CertInfo 342{ 343 BYTE* Modulus; 344 DWORD ModulusLength; 345 BYTE exponent[4]; 346}; 347typedef struct rdp_CertInfo rdpCertInfo; 348 349struct rdp_certificate 350{ 351 rdpCertInfo cert_info; 352 rdpX509CertChain* x509_cert_chain; 353}; 354typedef struct rdp_certificate rdpCertificate; 355 356struct rdp_rsa_key 357{ 358 BYTE* Modulus; 359 DWORD ModulusLength; 360 BYTE* PrivateExponent; 361 DWORD PrivateExponentLength; 362 BYTE exponent[4]; 363}; 364typedef struct rdp_rsa_key rdpRsaKey; 365 366/* Channels */ 367 368struct _ADDIN_ARGV 369{ 370 int argc; 371 char** argv; 372}; 373typedef struct _ADDIN_ARGV ADDIN_ARGV; 374 375/* Extensions */ 376 377struct rdp_ext_set 378{ 379 char name[256]; /* plugin name or path */ 380 void* data; /* plugin data */ 381}; 382 383/* Bitmap Cache */ 384 385struct _BITMAP_CACHE_CELL_INFO 386{ 387 UINT16 numEntries; 388 UINT16 maxSize; 389}; 390typedef struct _BITMAP_CACHE_CELL_INFO BITMAP_CACHE_CELL_INFO; 391 392struct _BITMAP_CACHE_V2_CELL_INFO 393{ 394 UINT32 numEntries; 395 BOOL persistent; 396}; 397typedef struct _BITMAP_CACHE_V2_CELL_INFO BITMAP_CACHE_V2_CELL_INFO; 398 399/* Glyph Cache */ 400 401struct _GLYPH_CACHE_DEFINITION 402{ 403 UINT16 cacheEntries; 404 UINT16 cacheMaximumCellSize; 405}; 406typedef struct _GLYPH_CACHE_DEFINITION GLYPH_CACHE_DEFINITION; 407 408/* Monitors */ 409 410struct _MONITOR_DEF 411{ 412 INT32 left; 413 INT32 top; 414 INT32 right; 415 INT32 bottom; 416 UINT32 flags; 417}; 418typedef struct _MONITOR_DEF MONITOR_DEF; 419 420struct _MONITOR_ATTRIBUTES 421{ 422 UINT32 physicalWidth; 423 UINT32 physicalHeight; 424 UINT32 orientation; 425 UINT32 desktopScaleFactor; 426 UINT32 deviceScaleFactor; 427}; 428typedef struct _MONITOR_ATTRIBUTES MONITOR_ATTRIBUTES; 429 430struct rdp_monitor 431{ 432 INT32 x; 433 INT32 y; 434 INT32 width; 435 INT32 height; 436 UINT32 is_primary; 437 UINT32 orig_screen; 438 MONITOR_ATTRIBUTES attributes; 439}; 440typedef struct rdp_monitor rdpMonitor; 441 442/* Device Redirection */ 443 444#define RDPDR_DTYP_SERIAL 0x00000001 445#define RDPDR_DTYP_PARALLEL 0x00000002 446#define RDPDR_DTYP_PRINT 0x00000004 447#define RDPDR_DTYP_FILESYSTEM 0x00000008 448#define RDPDR_DTYP_SMARTCARD 0x00000020 449 450struct _RDPDR_DEVICE 451{ 452 UINT32 Id; 453 UINT32 Type; 454 char* Name; 455}; 456typedef struct _RDPDR_DEVICE RDPDR_DEVICE; 457 458struct _RDPDR_DRIVE 459{ 460 UINT32 Id; 461 UINT32 Type; 462 char* Name; 463 char* Path; 464 BOOL automount; 465}; 466typedef struct _RDPDR_DRIVE RDPDR_DRIVE; 467 468struct _RDPDR_PRINTER 469{ 470 UINT32 Id; 471 UINT32 Type; 472 char* Name; 473 char* DriverName; 474}; 475typedef struct _RDPDR_PRINTER RDPDR_PRINTER; 476 477struct _RDPDR_SMARTCARD 478{ 479 UINT32 Id; 480 UINT32 Type; 481 char* Name; 482}; 483typedef struct _RDPDR_SMARTCARD RDPDR_SMARTCARD; 484 485struct _RDPDR_SERIAL 486{ 487 UINT32 Id; 488 UINT32 Type; 489 char* Name; 490 char* Path; 491 char* Driver; 492 char* Permissive; 493}; 494typedef struct _RDPDR_SERIAL RDPDR_SERIAL; 495 496struct _RDPDR_PARALLEL 497{ 498 UINT32 Id; 499 UINT32 Type; 500 char* Name; 501 char* Path; 502}; 503typedef struct _RDPDR_PARALLEL RDPDR_PARALLEL; 504 505#define PROXY_TYPE_NONE 0 506#define PROXY_TYPE_HTTP 1 507#define PROXY_TYPE_SOCKS 2 508#define PROXY_TYPE_IGNORE 0xFFFF 509 510/* Settings */ 511 512#ifdef __GNUC__ 513#define ALIGN64 __attribute__((aligned(8))) 514#else 515#ifdef _WIN32 516#define ALIGN64 __declspec(align(8)) 517#else 518#define ALIGN64 519#endif 520#endif 521 522/** 523 * FreeRDP Settings Ids 524 * This is generated with a script parsing the rdpSettings data structure 525 */ 526 527#define FreeRDP_instance (0) 528#define FreeRDP_ServerMode (16) 529#define FreeRDP_ShareId (17) 530#define FreeRDP_PduSource (18) 531#define FreeRDP_ServerPort (19) 532#define FreeRDP_ServerHostname (20) 533#define FreeRDP_Username (21) 534#define FreeRDP_Password (22) 535#define FreeRDP_Domain (23) 536#define FreeRDP_PasswordHash (24) 537#define FreeRDP_WaitForOutputBufferFlush (25) 538#define FreeRDP_MaxTimeInCheckLoop (26) 539#define FreeRDP_AcceptedCert (27) 540#define FreeRDP_AcceptedCertLength (28) 541#define FreeRDP_RdpVersion (128) 542#define FreeRDP_DesktopWidth (129) 543#define FreeRDP_DesktopHeight (130) 544#define FreeRDP_ColorDepth (131) 545#define FreeRDP_ConnectionType (132) 546#define FreeRDP_ClientBuild (133) 547#define FreeRDP_ClientHostname (134) 548#define FreeRDP_ClientProductId (135) 549#define FreeRDP_EarlyCapabilityFlags (136) 550#define FreeRDP_NetworkAutoDetect (137) 551#define FreeRDP_SupportAsymetricKeys (138) 552#define FreeRDP_SupportErrorInfoPdu (139) 553#define FreeRDP_SupportStatusInfoPdu (140) 554#define FreeRDP_SupportMonitorLayoutPdu (141) 555#define FreeRDP_SupportGraphicsPipeline (142) 556#define FreeRDP_SupportDynamicTimeZone (143) 557#define FreeRDP_SupportHeartbeatPdu (144) 558#define FreeRDP_DesktopPhysicalWidth (145) 559#define FreeRDP_DesktopPhysicalHeight (146) 560#define FreeRDP_DesktopOrientation (147) 561#define FreeRDP_DesktopScaleFactor (148) 562#define FreeRDP_DeviceScaleFactor (149) 563#define FreeRDP_UseRdpSecurityLayer (192) 564#define FreeRDP_EncryptionMethods (193) 565#define FreeRDP_ExtEncryptionMethods (194) 566#define FreeRDP_EncryptionLevel (195) 567#define FreeRDP_ServerRandom (196) 568#define FreeRDP_ServerRandomLength (197) 569#define FreeRDP_ServerCertificate (198) 570#define FreeRDP_ServerCertificateLength (199) 571#define FreeRDP_ClientRandom (200) 572#define FreeRDP_ClientRandomLength (201) 573#define FreeRDP_ChannelCount (256) 574#define FreeRDP_ChannelDefArraySize (257) 575#define FreeRDP_ChannelDefArray (258) 576#define FreeRDP_ClusterInfoFlags (320) 577#define FreeRDP_RedirectedSessionId (321) 578#define FreeRDP_ConsoleSession (322) 579#define FreeRDP_MonitorCount (384) 580#define FreeRDP_MonitorDefArraySize (385) 581#define FreeRDP_MonitorDefArray (386) 582#define FreeRDP_SpanMonitors (387) 583#define FreeRDP_UseMultimon (388) 584#define FreeRDP_ForceMultimon (389) 585#define FreeRDP_DesktopPosX (390) 586#define FreeRDP_DesktopPosY (391) 587#define FreeRDP_ListMonitors (392) 588#define FreeRDP_MonitorIds (393) 589#define FreeRDP_NumMonitorIds (394) 590#define FreeRDP_MonitorLocalShiftX (395) 591#define FreeRDP_MonitorLocalShiftY (396) 592#define FreeRDP_HasMonitorAttributes (397) 593#define FreeRDP_MultitransportFlags (512) 594#define FreeRDP_SupportMultitransport (513) 595#define FreeRDP_AlternateShell (640) 596#define FreeRDP_ShellWorkingDirectory (641) 597#define FreeRDP_AutoLogonEnabled (704) 598#define FreeRDP_CompressionEnabled (705) 599#define FreeRDP_DisableCtrlAltDel (706) 600#define FreeRDP_EnableWindowsKey (707) 601#define FreeRDP_MaximizeShell (708) 602#define FreeRDP_LogonNotify (709) 603#define FreeRDP_LogonErrors (710) 604#define FreeRDP_MouseAttached (711) 605#define FreeRDP_MouseHasWheel (712) 606#define FreeRDP_RemoteConsoleAudio (713) 607#define FreeRDP_AudioPlayback (714) 608#define FreeRDP_AudioCapture (715) 609#define FreeRDP_VideoDisable (716) 610#define FreeRDP_PasswordIsSmartcardPin (717) 611#define FreeRDP_UsingSavedCredentials (718) 612#define FreeRDP_ForceEncryptedCsPdu (719) 613#define FreeRDP_HiDefRemoteApp (720) 614#define FreeRDP_CompressionLevel (721) 615#define FreeRDP_IPv6Enabled (768) 616#define FreeRDP_ClientAddress (769) 617#define FreeRDP_ClientDir (770) 618#define FreeRDP_AutoReconnectionEnabled (832) 619#define FreeRDP_AutoReconnectMaxRetries (833) 620#define FreeRDP_ClientAutoReconnectCookie (834) 621#define FreeRDP_ServerAutoReconnectCookie (835) 622#define FreeRDP_PrintReconnectCookie (836) 623#define FreeRDP_ClientTimeZone (896) 624#define FreeRDP_DynamicDSTTimeZoneKeyName (897) 625#define FreeRDP_DynamicDaylightTimeDisabled (898) 626#define FreeRDP_PerformanceFlags (960) 627#define FreeRDP_AllowFontSmoothing (961) 628#define FreeRDP_DisableWallpaper (962) 629#define FreeRDP_DisableFullWindowDrag (963) 630#define FreeRDP_DisableMenuAnims (964) 631#define FreeRDP_DisableThemes (965) 632#define FreeRDP_DisableCursorShadow (966) 633#define FreeRDP_DisableCursorBlinking (967) 634#define FreeRDP_AllowDesktopComposition (968) 635#define FreeRDP_RemoteAssistanceMode (1024) 636#define FreeRDP_RemoteAssistanceSessionId (1025) 637#define FreeRDP_RemoteAssistancePassStub (1026) 638#define FreeRDP_RemoteAssistancePassword (1027) 639#define FreeRDP_RemoteAssistanceRCTicket (1028) 640#define FreeRDP_EncomspVirtualChannel (1029) 641#define FreeRDP_RemdeskVirtualChannel (1030) 642#define FreeRDP_LyncRdpMode (1031) 643#define FreeRDP_RemoteAssistanceRequestControl (1032) 644#define FreeRDP_TlsSecurity (1088) 645#define FreeRDP_NlaSecurity (1089) 646#define FreeRDP_RdpSecurity (1090) 647#define FreeRDP_ExtSecurity (1091) 648#define FreeRDP_Authentication (1092) 649#define FreeRDP_RequestedProtocols (1093) 650#define FreeRDP_SelectedProtocol (1094) 651#define FreeRDP_NegotiationFlags (1095) 652#define FreeRDP_NegotiateSecurityLayer (1096) 653#define FreeRDP_RestrictedAdminModeRequired (1097) 654#define FreeRDP_AuthenticationServiceClass (1098) 655#define FreeRDP_DisableCredentialsDelegation (1099) 656#define FreeRDP_AuthenticationLevel (1100) 657#define FreeRDP_AllowedTlsCiphers (1101) 658#define FreeRDP_VmConnectMode (1102) 659#define FreeRDP_NtlmSamFile (1103) 660#define FreeRDP_FIPSMode (1104) 661#define FreeRDP_TlsSecLevel (1105) 662#define FreeRDP_TLSMinVersion (1106) 663#define FreeRDP_TLSMaxVersion (1107) 664#define FreeRDP_MstscCookieMode (1152) 665#define FreeRDP_CookieMaxLength (1153) 666#define FreeRDP_PreconnectionId (1154) 667#define FreeRDP_PreconnectionBlob (1155) 668#define FreeRDP_SendPreconnectionPdu (1156) 669#define FreeRDP_RedirectionFlags (1216) 670#define FreeRDP_TargetNetAddress (1217) 671#define FreeRDP_LoadBalanceInfo (1218) 672#define FreeRDP_LoadBalanceInfoLength (1219) 673#define FreeRDP_RedirectionUsername (1220) 674#define FreeRDP_RedirectionDomain (1221) 675#define FreeRDP_RedirectionPassword (1222) 676#define FreeRDP_RedirectionPasswordLength (1223) 677#define FreeRDP_RedirectionTargetFQDN (1224) 678#define FreeRDP_RedirectionTargetNetBiosName (1225) 679#define FreeRDP_RedirectionTsvUrl (1226) 680#define FreeRDP_RedirectionTsvUrlLength (1227) 681#define FreeRDP_TargetNetAddressCount (1228) 682#define FreeRDP_TargetNetAddresses (1229) 683#define FreeRDP_TargetNetPorts (1230) 684#define FreeRDP_RedirectionAcceptedCert (1231) 685#define FreeRDP_RedirectionAcceptedCertLength (1232) 686#define FreeRDP_RedirectionPreferType (1233) 687#define FreeRDP_RedirectionGuid (1234) 688#define FreeRDP_RedirectionGuidLength (1235) 689#define FreeRDP_RedirectionTargetCertificate (1236) 690#define FreeRDP_RedirectionTargetCertificateLength (1237) 691#define FreeRDP_Password51 (1280) 692#define FreeRDP_Password51Length (1281) 693#define FreeRDP_SmartcardLogon (1282) 694#define FreeRDP_PromptForCredentials (1283) 695#define FreeRDP_KerberosKdc (1344) 696#define FreeRDP_KerberosRealm (1345) 697#define FreeRDP_IgnoreCertificate (1408) 698#define FreeRDP_CertificateName (1409) 699#define FreeRDP_CertificateFile (1410) 700#define FreeRDP_PrivateKeyFile (1411) 701#define FreeRDP_RdpKeyFile (1412) 702#define FreeRDP_RdpServerRsaKey (1413) 703#define FreeRDP_RdpServerCertificate (1414) 704#define FreeRDP_ExternalCertificateManagement (1415) 705#define FreeRDP_CertificateContent (1416) 706#define FreeRDP_PrivateKeyContent (1417) 707#define FreeRDP_RdpKeyContent (1418) 708#define FreeRDP_AutoAcceptCertificate (1419) 709#define FreeRDP_AutoDenyCertificate (1420) 710#define FreeRDP_CertificateAcceptedFingerprints (1421) 711#define FreeRDP_Workarea (1536) 712#define FreeRDP_Fullscreen (1537) 713#define FreeRDP_PercentScreen (1538) 714#define FreeRDP_GrabKeyboard (1539) 715#define FreeRDP_Decorations (1540) 716#define FreeRDP_MouseMotion (1541) 717#define FreeRDP_WindowTitle (1542) 718#define FreeRDP_ParentWindowId (1543) 719#define FreeRDP_AsyncInput (1544) 720#define FreeRDP_AsyncUpdate (1545) 721#define FreeRDP_AsyncChannels (1546) 722#define FreeRDP_ToggleFullscreen (1548) 723#define FreeRDP_WmClass (1549) 724#define FreeRDP_EmbeddedWindow (1550) 725#define FreeRDP_SmartSizing (1551) 726#define FreeRDP_XPan (1552) 727#define FreeRDP_YPan (1553) 728#define FreeRDP_SmartSizingWidth (1554) 729#define FreeRDP_SmartSizingHeight (1555) 730#define FreeRDP_PercentScreenUseWidth (1556) 731#define FreeRDP_PercentScreenUseHeight (1557) 732#define FreeRDP_DynamicResolutionUpdate (1558) 733#define FreeRDP_GrabMouse (1559) 734#define FreeRDP_SoftwareGdi (1601) 735#define FreeRDP_LocalConnection (1602) 736#define FreeRDP_AuthenticationOnly (1603) 737#define FreeRDP_CredentialsFromStdin (1604) 738#define FreeRDP_UnmapButtons (1605) 739#define FreeRDP_OldLicenseBehaviour (1606) 740#define FreeRDP_ComputerName (1664) 741#define FreeRDP_ConnectionFile (1728) 742#define FreeRDP_AssistanceFile (1729) 743#define FreeRDP_HomePath (1792) 744#define FreeRDP_ConfigPath (1793) 745#define FreeRDP_CurrentPath (1794) 746#define FreeRDP_DumpRemoteFx (1856) 747#define FreeRDP_PlayRemoteFx (1857) 748#define FreeRDP_DumpRemoteFxFile (1858) 749#define FreeRDP_PlayRemoteFxFile (1859) 750#define FreeRDP_GatewayUsageMethod (1984) 751#define FreeRDP_GatewayPort (1985) 752#define FreeRDP_GatewayHostname (1986) 753#define FreeRDP_GatewayUsername (1987) 754#define FreeRDP_GatewayPassword (1988) 755#define FreeRDP_GatewayDomain (1989) 756#define FreeRDP_GatewayCredentialsSource (1990) 757#define FreeRDP_GatewayUseSameCredentials (1991) 758#define FreeRDP_GatewayEnabled (1992) 759#define FreeRDP_GatewayBypassLocal (1993) 760#define FreeRDP_GatewayRpcTransport (1994) 761#define FreeRDP_GatewayHttpTransport (1995) 762#define FreeRDP_GatewayUdpTransport (1996) 763#define FreeRDP_GatewayAccessToken (1997) 764#define FreeRDP_GatewayAcceptedCert (1998) 765#define FreeRDP_GatewayAcceptedCertLength (1999) 766#define FreeRDP_GatewayHttpUseWebsockets (2000) 767#define FreeRDP_ProxyType (2015) 768#define FreeRDP_ProxyHostname (2016) 769#define FreeRDP_ProxyPort (2017) 770#define FreeRDP_ProxyUsername (2018) 771#define FreeRDP_ProxyPassword (2019) 772#define FreeRDP_RemoteApplicationMode (2112) 773#define FreeRDP_RemoteApplicationName (2113) 774#define FreeRDP_RemoteApplicationIcon (2114) 775#define FreeRDP_RemoteApplicationProgram (2115) 776#define FreeRDP_RemoteApplicationFile (2116) 777#define FreeRDP_RemoteApplicationGuid (2117) 778#define FreeRDP_RemoteApplicationCmdLine (2118) 779#define FreeRDP_RemoteApplicationExpandCmdLine (2119) 780#define FreeRDP_RemoteApplicationExpandWorkingDir (2120) 781#define FreeRDP_DisableRemoteAppCapsCheck (2121) 782#define FreeRDP_RemoteAppNumIconCaches (2122) 783#define FreeRDP_RemoteAppNumIconCacheEntries (2123) 784#define FreeRDP_RemoteAppLanguageBarSupported (2124) 785#define FreeRDP_RemoteWndSupportLevel (2125) 786#define FreeRDP_RemoteApplicationSupportLevel (2126) 787#define FreeRDP_RemoteApplicationSupportMask (2127) 788#define FreeRDP_RemoteApplicationWorkingDir (2128) 789#define FreeRDP_ReceivedCapabilities (2240) 790#define FreeRDP_ReceivedCapabilitiesSize (2241) 791#define FreeRDP_OsMajorType (2304) 792#define FreeRDP_OsMinorType (2305) 793#define FreeRDP_RefreshRect (2306) 794#define FreeRDP_SuppressOutput (2307) 795#define FreeRDP_FastPathOutput (2308) 796#define FreeRDP_SaltedChecksum (2309) 797#define FreeRDP_LongCredentialsSupported (2310) 798#define FreeRDP_NoBitmapCompressionHeader (2311) 799#define FreeRDP_BitmapCompressionDisabled (2312) 800#define FreeRDP_DesktopResize (2368) 801#define FreeRDP_DrawAllowDynamicColorFidelity (2369) 802#define FreeRDP_DrawAllowColorSubsampling (2370) 803#define FreeRDP_DrawAllowSkipAlpha (2371) 804#define FreeRDP_OrderSupport (2432) 805#define FreeRDP_BitmapCacheV3Enabled (2433) 806#define FreeRDP_AltSecFrameMarkerSupport (2434) 807#define FreeRDP_AllowUnanouncedOrdersFromServer (2435) 808#define FreeRDP_BitmapCacheEnabled (2497) 809#define FreeRDP_BitmapCacheVersion (2498) 810#define FreeRDP_AllowCacheWaitingList (2499) 811#define FreeRDP_BitmapCachePersistEnabled (2500) 812#define FreeRDP_BitmapCacheV2NumCells (2501) 813#define FreeRDP_BitmapCacheV2CellInfo (2502) 814#define FreeRDP_ColorPointerFlag (2560) 815#define FreeRDP_PointerCacheSize (2561) 816#define FreeRDP_KeyboardRemappingList (2622) 817#define FreeRDP_KeyboardCodePage (2623) 818#define FreeRDP_KeyboardLayout (2624) 819#define FreeRDP_KeyboardType (2625) 820#define FreeRDP_KeyboardSubType (2626) 821#define FreeRDP_KeyboardFunctionKey (2627) 822#define FreeRDP_ImeFileName (2628) 823#define FreeRDP_UnicodeInput (2629) 824#define FreeRDP_FastPathInput (2630) 825#define FreeRDP_MultiTouchInput (2631) 826#define FreeRDP_MultiTouchGestures (2632) 827#define FreeRDP_KeyboardHook (2633) 828#define FreeRDP_HasHorizontalWheel (2634) 829#define FreeRDP_HasExtendedMouseEvent (2635) 830#define FreeRDP_BrushSupportLevel (2688) 831#define FreeRDP_GlyphSupportLevel (2752) 832#define FreeRDP_GlyphCache (2753) 833#define FreeRDP_FragCache (2754) 834#define FreeRDP_OffscreenSupportLevel (2816) 835#define FreeRDP_OffscreenCacheSize (2817) 836#define FreeRDP_OffscreenCacheEntries (2818) 837#define FreeRDP_VirtualChannelCompressionFlags (2880) 838#define FreeRDP_VirtualChannelChunkSize (2881) 839#define FreeRDP_SoundBeepsEnabled (2944) 840#define FreeRDP_MultifragMaxRequestSize (3328) 841#define FreeRDP_LargePointerFlag (3392) 842#define FreeRDP_CompDeskSupportLevel (3456) 843#define FreeRDP_SurfaceCommandsEnabled (3520) 844#define FreeRDP_FrameMarkerCommandEnabled (3521) 845#define FreeRDP_SurfaceFrameMarkerEnabled (3522) 846#define FreeRDP_RemoteFxOnly (3648) 847#define FreeRDP_RemoteFxCodec (3649) 848#define FreeRDP_RemoteFxCodecId (3650) 849#define FreeRDP_RemoteFxCodecMode (3651) 850#define FreeRDP_RemoteFxImageCodec (3652) 851#define FreeRDP_RemoteFxCaptureFlags (3653) 852#define FreeRDP_NSCodec (3712) 853#define FreeRDP_NSCodecId (3713) 854#define FreeRDP_FrameAcknowledge (3714) 855#define FreeRDP_NSCodecColorLossLevel (3715) 856#define FreeRDP_NSCodecAllowSubsampling (3716) 857#define FreeRDP_NSCodecAllowDynamicColorFidelity (3717) 858#define FreeRDP_JpegCodec (3776) 859#define FreeRDP_JpegCodecId (3777) 860#define FreeRDP_JpegQuality (3778) 861#define FreeRDP_GfxThinClient (3840) 862#define FreeRDP_GfxSmallCache (3841) 863#define FreeRDP_GfxProgressive (3842) 864#define FreeRDP_GfxProgressiveV2 (3843) 865#define FreeRDP_GfxH264 (3844) 866#define FreeRDP_GfxAVC444 (3845) 867#define FreeRDP_GfxSendQoeAck (3846) 868#define FreeRDP_GfxAVC444v2 (3847) 869#define FreeRDP_GfxCapsFilter (3848) 870#define FreeRDP_BitmapCacheV3CodecId (3904) 871#define FreeRDP_DrawNineGridEnabled (3968) 872#define FreeRDP_DrawNineGridCacheSize (3969) 873#define FreeRDP_DrawNineGridCacheEntries (3970) 874#define FreeRDP_DrawGdiPlusEnabled (4032) 875#define FreeRDP_DrawGdiPlusCacheEnabled (4033) 876#define FreeRDP_DeviceRedirection (4160) 877#define FreeRDP_DeviceCount (4161) 878#define FreeRDP_DeviceArraySize (4162) 879#define FreeRDP_DeviceArray (4163) 880#define FreeRDP_RedirectDrives (4288) 881#define FreeRDP_RedirectHomeDrive (4289) 882#define FreeRDP_DrivesToRedirect (4290) 883#define FreeRDP_RedirectSmartCards (4416) 884#define FreeRDP_RedirectPrinters (4544) 885#define FreeRDP_RedirectSerialPorts (4672) 886#define FreeRDP_RedirectParallelPorts (4673) 887#define FreeRDP_PreferIPv6OverIPv4 (4674) 888#define FreeRDP_RedirectClipboard (4800) 889#define FreeRDP_StaticChannelCount (4928) 890#define FreeRDP_StaticChannelArraySize (4929) 891#define FreeRDP_StaticChannelArray (4930) 892#define FreeRDP_DynamicChannelCount (5056) 893#define FreeRDP_DynamicChannelArraySize (5057) 894#define FreeRDP_DynamicChannelArray (5058) 895#define FreeRDP_SupportDynamicChannels (5059) 896#define FreeRDP_SupportEchoChannel (5184) 897#define FreeRDP_SupportDisplayControl (5185) 898#define FreeRDP_SupportGeometryTracking (5186) 899#define FreeRDP_SupportSSHAgentChannel (5187) 900#define FreeRDP_SupportVideoOptimized (5188) 901#define FreeRDP_RDP2TCPArgs (5189) 902#define FreeRDP_TcpKeepAlive (5190) 903#define FreeRDP_TcpKeepAliveRetries (5191) 904#define FreeRDP_TcpKeepAliveDelay (5192) 905#define FreeRDP_TcpKeepAliveInterval (5193) 906#define FreeRDP_TcpAckTimeout (5194) 907#define FreeRDP_TcpConnectTimeout (5197) 908 909/** 910 * FreeRDP Settings Data Structure 911 */ 912 913#define FreeRDP_Settings_StableAPI_MAX 5312 914struct rdp_settings 915{ 916 /** 917 * WARNING: this data structure is carefully padded for ABI stability! 918 * Keeping this area clean is particularly challenging, so unless you are 919 * a trusted developer you should NOT take the liberty of adding your own 920 * options straight into the ABI stable zone. Instead, append them to the 921 * very end of this data structure, in the zone marked as ABI unstable. 922 */ 923 924 ALIGN64 void* instance; /* 0 */ 925 UINT64 padding001[16 - 1]; /* 1 */ 926 927 /* Core Parameters */ 928 ALIGN64 BOOL ServerMode; /* 16 */ 929 ALIGN64 UINT32 ShareId; /* 17 */ 930 ALIGN64 UINT32 PduSource; /* 18 */ 931 ALIGN64 UINT32 ServerPort; /* 19 */ 932 ALIGN64 char* ServerHostname; /* 20 */ 933 ALIGN64 char* Username; /* 21 */ 934 ALIGN64 char* Password; /* 22 */ 935 ALIGN64 char* Domain; /* 23 */ 936 ALIGN64 char* PasswordHash; /* 24 */ 937 ALIGN64 BOOL WaitForOutputBufferFlush; /* 25 */ 938 ALIGN64 UINT32 MaxTimeInCheckLoop; /* 26 */ 939 ALIGN64 char* AcceptedCert; /* 27 */ 940 ALIGN64 UINT32 AcceptedCertLength; /* 28 */ 941 UINT64 padding0064[64 - 29]; /* 29 */ 942 UINT64 padding0128[128 - 64]; /* 64 */ 943 944 /** 945 * GCC User Data Blocks 946 */ 947 948 /* Client/Server Core Data */ 949 ALIGN64 UINT32 RdpVersion; /* 128 */ 950 ALIGN64 UINT32 DesktopWidth; /* 129 */ 951 ALIGN64 UINT32 DesktopHeight; /* 130 */ 952 ALIGN64 UINT32 ColorDepth; /* 131 */ 953 ALIGN64 UINT32 ConnectionType; /* 132 */ 954 ALIGN64 UINT32 ClientBuild; /* 133 */ 955 ALIGN64 char* ClientHostname; /* 134 */ 956 ALIGN64 char* ClientProductId; /* 135 */ 957 ALIGN64 UINT32 EarlyCapabilityFlags; /* 136 */ 958 ALIGN64 BOOL NetworkAutoDetect; /* 137 */ 959 ALIGN64 BOOL SupportAsymetricKeys; /* 138 */ 960 ALIGN64 BOOL SupportErrorInfoPdu; /* 139 */ 961 ALIGN64 BOOL SupportStatusInfoPdu; /* 140 */ 962 ALIGN64 BOOL SupportMonitorLayoutPdu; /* 141 */ 963 ALIGN64 BOOL SupportGraphicsPipeline; /* 142 */ 964 ALIGN64 BOOL SupportDynamicTimeZone; /* 143 */ 965 ALIGN64 BOOL SupportHeartbeatPdu; /* 144 */ 966 ALIGN64 UINT32 DesktopPhysicalWidth; /* 145 */ 967 ALIGN64 UINT32 DesktopPhysicalHeight; /* 146 */ 968 ALIGN64 UINT16 DesktopOrientation; /* 147 */ 969 ALIGN64 UINT32 DesktopScaleFactor; /* 148 */ 970 ALIGN64 UINT32 DeviceScaleFactor; /* 149 */ 971 UINT64 padding0192[192 - 150]; /* 150 */ 972 973 /* Client/Server Security Data */ 974 ALIGN64 BOOL UseRdpSecurityLayer; /* 192 */ 975 ALIGN64 UINT32 EncryptionMethods; /* 193 */ 976 ALIGN64 UINT32 ExtEncryptionMethods; /* 194 */ 977 ALIGN64 UINT32 EncryptionLevel; /* 195 */ 978 ALIGN64 BYTE* ServerRandom; /* 196 */ 979 ALIGN64 UINT32 ServerRandomLength; /* 197 */ 980 ALIGN64 BYTE* ServerCertificate; /* 198 */ 981 ALIGN64 UINT32 ServerCertificateLength; /* 199 */ 982 ALIGN64 BYTE* ClientRandom; /* 200 */ 983 ALIGN64 UINT32 ClientRandomLength; /* 201 */ 984 UINT64 padding0256[256 - 202]; /* 202 */ 985 986 /* Client Network Data */ 987 ALIGN64 UINT32 ChannelCount; /* 256 */ 988 ALIGN64 UINT32 ChannelDefArraySize; /* 257 */ 989 ALIGN64 CHANNEL_DEF* ChannelDefArray; /* 258 */ 990 UINT64 padding0320[320 - 259]; /* 259 */ 991 992 /* Client Cluster Data */ 993 ALIGN64 UINT32 ClusterInfoFlags; /* 320 */ 994 ALIGN64 UINT32 RedirectedSessionId; /* 321 */ 995 ALIGN64 BOOL ConsoleSession; /* 322 */ 996 UINT64 padding0384[384 - 323]; /* 323 */ 997 998 /* Client Monitor Data */ 999 ALIGN64 UINT32 MonitorCount; /* 384 */ 1000 ALIGN64 UINT32 MonitorDefArraySize; /* 385 */ 1001 ALIGN64 rdpMonitor* MonitorDefArray; /* 386 */ 1002 ALIGN64 BOOL SpanMonitors; /* 387 */ 1003 ALIGN64 BOOL UseMultimon; /* 388 */ 1004 ALIGN64 BOOL ForceMultimon; /* 389 */ 1005 ALIGN64 UINT32 DesktopPosX; /* 390 */ 1006 ALIGN64 UINT32 DesktopPosY; /* 391 */ 1007 ALIGN64 BOOL ListMonitors; /* 392 */ 1008 ALIGN64 UINT32* MonitorIds; /* 393 */ 1009 ALIGN64 UINT32 NumMonitorIds; /* 394 */ 1010 ALIGN64 UINT32 MonitorLocalShiftX; /*395 */ 1011 ALIGN64 UINT32 MonitorLocalShiftY; /* 396 */ 1012 ALIGN64 BOOL HasMonitorAttributes; /* 397 */ 1013 UINT64 padding0448[448 - 398]; /* 398 */ 1014 1015 /* Client Message Channel Data */ 1016 UINT64 padding0512[512 - 448]; /* 448 */ 1017 1018 /* Client Multitransport Channel Data */ 1019 ALIGN64 UINT32 MultitransportFlags; /* 512 */ 1020 ALIGN64 BOOL SupportMultitransport; /* 513 */ 1021 UINT64 padding0576[576 - 514]; /* 514 */ 1022 UINT64 padding0640[640 - 576]; /* 576 */ 1023 1024 /* 1025 * Client Info 1026 */ 1027 1028 /* Client Info (Shell) */ 1029 ALIGN64 char* AlternateShell; /* 640 */ 1030 ALIGN64 char* ShellWorkingDirectory; /* 641 */ 1031 UINT64 padding0704[704 - 642]; /* 642 */ 1032 1033 /* Client Info Flags */ 1034 ALIGN64 BOOL AutoLogonEnabled; /* 704 */ 1035 ALIGN64 BOOL CompressionEnabled; /* 705 */ 1036 ALIGN64 BOOL DisableCtrlAltDel; /* 706 */ 1037 ALIGN64 BOOL EnableWindowsKey; /* 707 */ 1038 ALIGN64 BOOL MaximizeShell; /* 708 */ 1039 ALIGN64 BOOL LogonNotify; /* 709 */ 1040 ALIGN64 BOOL LogonErrors; /* 710 */ 1041 ALIGN64 BOOL MouseAttached; /* 711 */ 1042 ALIGN64 BOOL MouseHasWheel; /* 712 */ 1043 ALIGN64 BOOL RemoteConsoleAudio; /* 713 */ 1044 ALIGN64 BOOL AudioPlayback; /* 714 */ 1045 ALIGN64 BOOL AudioCapture; /* 715 */ 1046 ALIGN64 BOOL VideoDisable; /* 716 */ 1047 ALIGN64 BOOL PasswordIsSmartcardPin; /* 717 */ 1048 ALIGN64 BOOL UsingSavedCredentials; /* 718 */ 1049 ALIGN64 BOOL ForceEncryptedCsPdu; /* 719 */ 1050 ALIGN64 BOOL HiDefRemoteApp; /* 720 */ 1051 ALIGN64 UINT32 CompressionLevel; /* 721 */ 1052 UINT64 padding0768[768 - 722]; /* 722 */ 1053 1054 /* Client Info (Extra) */ 1055 ALIGN64 BOOL IPv6Enabled; /* 768 */ 1056 ALIGN64 char* ClientAddress; /* 769 */ 1057 ALIGN64 char* ClientDir; /* 770 */ 1058 UINT64 padding0832[832 - 771]; /* 771 */ 1059 1060 /* Client Info (Auto Reconnection) */ 1061 ALIGN64 BOOL AutoReconnectionEnabled; /* 832 */ 1062 ALIGN64 UINT32 AutoReconnectMaxRetries; /* 833 */ 1063 ALIGN64 ARC_CS_PRIVATE_PACKET* ClientAutoReconnectCookie; /* 834 */ 1064 ALIGN64 ARC_SC_PRIVATE_PACKET* ServerAutoReconnectCookie; /* 835 */ 1065 ALIGN64 BOOL PrintReconnectCookie; /* 836 */ 1066 UINT64 padding0896[896 - 837]; /* 837 */ 1067 1068 /* Client Info (Time Zone) */ 1069 ALIGN64 TIME_ZONE_INFORMATION* ClientTimeZone; /* 896 */ 1070 ALIGN64 char* DynamicDSTTimeZoneKeyName; /* 897 */ 1071 ALIGN64 BOOL DynamicDaylightTimeDisabled; /* 898 */ 1072 UINT64 padding0960[960 - 899]; /* 899 */ 1073 1074 /* Client Info (Performance Flags) */ 1075 ALIGN64 UINT32 PerformanceFlags; /* 960 */ 1076 ALIGN64 BOOL AllowFontSmoothing; /* 961 */ 1077 ALIGN64 BOOL DisableWallpaper; /* 962 */ 1078 ALIGN64 BOOL DisableFullWindowDrag; /* 963 */ 1079 ALIGN64 BOOL DisableMenuAnims; /* 964 */ 1080 ALIGN64 BOOL DisableThemes; /* 965 */ 1081 ALIGN64 BOOL DisableCursorShadow; /* 966 */ 1082 ALIGN64 BOOL DisableCursorBlinking; /* 967 */ 1083 ALIGN64 BOOL AllowDesktopComposition; /* 968 */ 1084 UINT64 padding1024[1024 - 969]; /* 969 */ 1085 1086 /* Remote Assistance */ 1087 ALIGN64 BOOL RemoteAssistanceMode; /* 1024 */ 1088 ALIGN64 char* RemoteAssistanceSessionId; /* 1025 */ 1089 ALIGN64 char* RemoteAssistancePassStub; /* 1026 */ 1090 ALIGN64 char* RemoteAssistancePassword; /* 1027 */ 1091 ALIGN64 char* RemoteAssistanceRCTicket; /* 1028 */ 1092 ALIGN64 BOOL EncomspVirtualChannel; /* 1029 */ 1093 ALIGN64 BOOL RemdeskVirtualChannel; /* 1030 */ 1094 ALIGN64 BOOL LyncRdpMode; /* 1031 */ 1095 ALIGN64 BOOL RemoteAssistanceRequestControl; /* 1032 */ 1096 UINT64 padding1088[1088 - 1033]; /* 1033 */ 1097 1098 /** 1099 * X.224 Connection Request/Confirm 1100 */ 1101 1102 /* Protocol Security */ 1103 ALIGN64 BOOL TlsSecurity; /* 1088 */ 1104 ALIGN64 BOOL NlaSecurity; /* 1089 */ 1105 ALIGN64 BOOL RdpSecurity; /* 1090 */ 1106 ALIGN64 BOOL ExtSecurity; /* 1091 */ 1107 ALIGN64 BOOL Authentication; /* 1092 */ 1108 ALIGN64 UINT32 RequestedProtocols; /* 1093 */ 1109 ALIGN64 UINT32 SelectedProtocol; /* 1094 */ 1110 ALIGN64 UINT32 NegotiationFlags; /* 1095 */ 1111 ALIGN64 BOOL NegotiateSecurityLayer; /* 1096 */ 1112 ALIGN64 BOOL RestrictedAdminModeRequired; /* 1097 */ 1113 ALIGN64 char* AuthenticationServiceClass; /* 1098 */ 1114 ALIGN64 BOOL DisableCredentialsDelegation; /* 1099 */ 1115 ALIGN64 UINT32 AuthenticationLevel; /* 1100 */ 1116 ALIGN64 char* AllowedTlsCiphers; /* 1101 */ 1117 ALIGN64 BOOL VmConnectMode; /* 1102 */ 1118 ALIGN64 char* NtlmSamFile; /* 1103 */ 1119 ALIGN64 BOOL FIPSMode; /* 1104 */ 1120 ALIGN64 UINT32 TlsSecLevel; /* 1105 */ 1121 ALIGN64 UINT16 TLSMinVersion; /* 1106 */ 1122 ALIGN64 UINT16 TLSMaxVersion; /* 1107 */ 1123 UINT64 padding1152[1152 - 1108]; /* 1108 */ 1124 1125 /* Connection Cookie */ 1126 ALIGN64 BOOL MstscCookieMode; /* 1152 */ 1127 ALIGN64 UINT32 CookieMaxLength; /* 1153 */ 1128 ALIGN64 UINT32 PreconnectionId; /* 1154 */ 1129 ALIGN64 char* PreconnectionBlob; /* 1155 */ 1130 ALIGN64 BOOL SendPreconnectionPdu; /* 1156 */ 1131 UINT64 padding1216[1216 - 1157]; /* 1157 */ 1132 1133 /* Server Redirection */ 1134 ALIGN64 UINT32 RedirectionFlags; /* 1216 */ 1135 ALIGN64 char* TargetNetAddress; /* 1217 */ 1136 ALIGN64 BYTE* LoadBalanceInfo; /* 1218 */ 1137 ALIGN64 UINT32 LoadBalanceInfoLength; /* 1219 */ 1138 ALIGN64 char* RedirectionUsername; /* 1220 */ 1139 ALIGN64 char* RedirectionDomain; /* 1221 */ 1140 ALIGN64 BYTE* RedirectionPassword; /* 1222 */ 1141 ALIGN64 UINT32 RedirectionPasswordLength; /* 1223 */ 1142 ALIGN64 char* RedirectionTargetFQDN; /* 1224 */ 1143 ALIGN64 char* RedirectionTargetNetBiosName; /* 1225 */ 1144 ALIGN64 BYTE* RedirectionTsvUrl; /* 1226 */ 1145 ALIGN64 UINT32 RedirectionTsvUrlLength; /* 1227 */ 1146 ALIGN64 UINT32 TargetNetAddressCount; /* 1228 */ 1147 ALIGN64 char** TargetNetAddresses; /* 1229 */ 1148 ALIGN64 UINT32* TargetNetPorts; /* 1230 */ 1149 ALIGN64 char* RedirectionAcceptedCert; /* 1231 */ 1150 ALIGN64 UINT32 RedirectionAcceptedCertLength; /* 1232 */ 1151 ALIGN64 UINT32 RedirectionPreferType; /* 1233 */ 1152 ALIGN64 BYTE* RedirectionGuid; /* 1234 */ 1153 ALIGN64 UINT32 RedirectionGuidLength; /* 1235 */ 1154 ALIGN64 BYTE* RedirectionTargetCertificate; /* 1236 */ 1155 ALIGN64 UINT32 RedirectionTargetCertificateLength; /* 1237 */ 1156 UINT64 padding1280[1280 - 1238]; /* 1238 */ 1157 1158 /** 1159 * Security 1160 */ 1161 1162 /* Credentials Cache */ 1163 ALIGN64 BYTE* Password51; /* 1280 */ 1164 ALIGN64 UINT32 Password51Length; /* 1281 */ 1165 ALIGN64 BOOL SmartcardLogon; /* 1282 */ 1166 ALIGN64 BOOL PromptForCredentials; /* 1283 */ 1167 UINT64 padding1344[1344 - 1284]; /* 1284 */ 1168 1169 /* Kerberos Authentication */ 1170 ALIGN64 char* KerberosKdc; /* 1344 */ 1171 ALIGN64 char* KerberosRealm; /* 1345 */ 1172 UINT64 padding1408[1408 - 1346]; /* 1346 */ 1173 1174 /* Server Certificate */ 1175 ALIGN64 BOOL IgnoreCertificate; /* 1408 */ 1176 ALIGN64 char* CertificateName; /* 1409 */ 1177 ALIGN64 char* CertificateFile; /* 1410 */ 1178 ALIGN64 char* PrivateKeyFile; /* 1411 */ 1179 ALIGN64 char* RdpKeyFile; /* 1412 */ 1180 ALIGN64 rdpRsaKey* RdpServerRsaKey; /* 1413 */ 1181 ALIGN64 rdpCertificate* RdpServerCertificate; /* 1414 */ 1182 ALIGN64 BOOL ExternalCertificateManagement; /* 1415 */ 1183 ALIGN64 char* CertificateContent; /* 1416 */ 1184 ALIGN64 char* PrivateKeyContent; /* 1417 */ 1185 ALIGN64 char* RdpKeyContent; /* 1418 */ 1186 ALIGN64 BOOL AutoAcceptCertificate; /* 1419 */ 1187 ALIGN64 BOOL AutoDenyCertificate; /* 1420 */ 1188 ALIGN64 char* CertificateAcceptedFingerprints; /* 1421 */ 1189 UINT64 padding1472[1472 - 1422]; /* 1422 */ 1190 UINT64 padding1536[1536 - 1472]; /* 1472 */ 1191 1192 /** 1193 * User Interface 1194 */ 1195 1196 /* Window Settings */ 1197 ALIGN64 BOOL Workarea; /* 1536 */ 1198 ALIGN64 BOOL Fullscreen; /* 1537 */ 1199 ALIGN64 UINT32 PercentScreen; /* 1538 */ 1200 ALIGN64 BOOL GrabKeyboard; /* 1539 */ 1201 ALIGN64 BOOL Decorations; /* 1540 */ 1202 ALIGN64 BOOL MouseMotion; /* 1541 */ 1203 ALIGN64 char* WindowTitle; /* 1542 */ 1204 ALIGN64 UINT64 ParentWindowId; /* 1543 */ 1205 ALIGN64 BOOL AsyncInput; /* 1544 */ 1206 ALIGN64 BOOL AsyncUpdate; /* 1545 */ 1207 ALIGN64 BOOL AsyncChannels; /* 1546 */ 1208 UINT64 padding1548[1548 - 1547]; /* 1547 */ 1209 ALIGN64 BOOL ToggleFullscreen; /* 1548 */ 1210 ALIGN64 char* WmClass; /* 1549 */ 1211 ALIGN64 BOOL EmbeddedWindow; /* 1550 */ 1212 ALIGN64 BOOL SmartSizing; /* 1551 */ 1213 ALIGN64 INT32 XPan; /* 1552 */ 1214 ALIGN64 INT32 YPan; /* 1553 */ 1215 ALIGN64 UINT32 SmartSizingWidth; /* 1554 */ 1216 ALIGN64 UINT32 SmartSizingHeight; /* 1555 */ 1217 ALIGN64 BOOL PercentScreenUseWidth; /* 1556 */ 1218 ALIGN64 BOOL PercentScreenUseHeight; /* 1557 */ 1219 ALIGN64 BOOL DynamicResolutionUpdate; /* 1558 */ 1220 ALIGN64 BOOL GrabMouse; /* 1559 */ 1221 UINT64 padding1601[1601 - 1560]; /* 1560 */ 1222 1223 /* Miscellaneous */ 1224 ALIGN64 BOOL SoftwareGdi; /* 1601 */ 1225 ALIGN64 BOOL LocalConnection; /* 1602 */ 1226 ALIGN64 BOOL AuthenticationOnly; /* 1603 */ 1227 ALIGN64 BOOL CredentialsFromStdin; /* 1604 */ 1228 ALIGN64 BOOL UnmapButtons; /* 1605 */ 1229 ALIGN64 BOOL OldLicenseBehaviour; /* 1606 */ 1230 UINT64 padding1664[1664 - 1607]; /* 1607 */ 1231 1232 /* Names */ 1233 ALIGN64 char* ComputerName; /* 1664 */ 1234 UINT64 padding1728[1728 - 1665]; /* 1665 */ 1235 1236 /* Files */ 1237 ALIGN64 char* ConnectionFile; /* 1728 */ 1238 ALIGN64 char* AssistanceFile; /* 1729 */ 1239 UINT64 padding1792[1792 - 1730]; /* 1730 */ 1240 1241 /* Paths */ 1242 ALIGN64 char* HomePath; /* 1792 */ 1243 ALIGN64 char* ConfigPath; /* 1793 */ 1244 ALIGN64 char* CurrentPath; /* 1794 */ 1245 UINT64 padding1856[1856 - 1795]; /* 1795 */ 1246 1247 /* Recording */ 1248 ALIGN64 BOOL DumpRemoteFx; /* 1856 */ 1249 ALIGN64 BOOL PlayRemoteFx; /* 1857 */ 1250 ALIGN64 char* DumpRemoteFxFile; /* 1858 */ 1251 ALIGN64 char* PlayRemoteFxFile; /* 1859 */ 1252 UINT64 padding1920[1920 - 1860]; /* 1860 */ 1253 UINT64 padding1984[1984 - 1920]; /* 1920 */ 1254 1255 /** 1256 * Gateway 1257 */ 1258 1259 /* Gateway */ 1260 ALIGN64 UINT32 GatewayUsageMethod; /* 1984 */ 1261 ALIGN64 UINT32 GatewayPort; /* 1985 */ 1262 ALIGN64 char* GatewayHostname; /* 1986 */ 1263 ALIGN64 char* GatewayUsername; /* 1987 */ 1264 ALIGN64 char* GatewayPassword; /* 1988 */ 1265 ALIGN64 char* GatewayDomain; /* 1989 */ 1266 ALIGN64 UINT32 GatewayCredentialsSource; /* 1990 */ 1267 ALIGN64 BOOL GatewayUseSameCredentials; /* 1991 */ 1268 ALIGN64 BOOL GatewayEnabled; /* 1992 */ 1269 ALIGN64 BOOL GatewayBypassLocal; /* 1993 */ 1270 ALIGN64 BOOL GatewayRpcTransport; /* 1994 */ 1271 ALIGN64 BOOL GatewayHttpTransport; /* 1995 */ 1272 ALIGN64 BOOL GatewayUdpTransport; /* 1996 */ 1273 ALIGN64 char* GatewayAccessToken; /* 1997 */ 1274 ALIGN64 char* GatewayAcceptedCert; /* 1998 */ 1275 ALIGN64 UINT32 GatewayAcceptedCertLength; /* 1999 */ 1276 ALIGN64 BOOL GatewayHttpUseWebsockets; /* 2000 */ 1277 UINT64 padding2015[2015 - 2001]; /* 2001 */ 1278 1279 /* Proxy */ 1280 ALIGN64 UINT32 ProxyType; /* 2015 */ 1281 ALIGN64 char* ProxyHostname; /* 2016 */ 1282 ALIGN64 UINT16 ProxyPort; /* 2017 */ 1283 ALIGN64 char* ProxyUsername; /* 2018 */ 1284 ALIGN64 char* ProxyPassword; /* 2019 */ 1285 UINT64 padding2112[2112 - 2020]; /* 2020 */ 1286 1287 /** 1288 * RemoteApp 1289 */ 1290 1291 /* RemoteApp */ 1292 ALIGN64 BOOL RemoteApplicationMode; /* 2112 */ 1293 ALIGN64 char* RemoteApplicationName; /* 2113 */ 1294 ALIGN64 char* RemoteApplicationIcon; /* 2114 */ 1295 ALIGN64 char* RemoteApplicationProgram; /* 2115 */ 1296 ALIGN64 char* RemoteApplicationFile; /* 2116 */ 1297 ALIGN64 char* RemoteApplicationGuid; /* 2117 */ 1298 ALIGN64 char* RemoteApplicationCmdLine; /* 2118 */ 1299 ALIGN64 UINT32 RemoteApplicationExpandCmdLine; /* 2119 */ 1300 ALIGN64 UINT32 RemoteApplicationExpandWorkingDir; /* 2120 */ 1301 ALIGN64 BOOL DisableRemoteAppCapsCheck; /* 2121 */ 1302 ALIGN64 UINT32 RemoteAppNumIconCaches; /* 2122 */ 1303 ALIGN64 UINT32 RemoteAppNumIconCacheEntries; /* 2123 */ 1304 ALIGN64 BOOL RemoteAppLanguageBarSupported; /* 2124 */ 1305 ALIGN64 UINT32 RemoteWndSupportLevel; /* 2125 */ 1306 ALIGN64 UINT32 RemoteApplicationSupportLevel; /* 2126 */ 1307 ALIGN64 UINT32 RemoteApplicationSupportMask; /* 2127 */ 1308 ALIGN64 char* RemoteApplicationWorkingDir; /* 2128 */ 1309 UINT64 padding2176[2176 - 2129]; /* 2129 */ 1310 UINT64 padding2240[2240 - 2176]; /* 2176 */ 1311 1312 /** 1313 * Mandatory Capabilities 1314 */ 1315 1316 /* Capabilities */ 1317 ALIGN64 BYTE* ReceivedCapabilities; /* 2240 */ 1318 ALIGN64 UINT32 ReceivedCapabilitiesSize; /* 2241 */ 1319 UINT64 padding2304[2304 - 2242]; /* 2242 */ 1320 1321 /* General Capabilities */ 1322 ALIGN64 UINT32 OsMajorType; /* 2304 */ 1323 ALIGN64 UINT32 OsMinorType; /* 2305 */ 1324 ALIGN64 BOOL RefreshRect; /* 2306 */ 1325 ALIGN64 BOOL SuppressOutput; /* 2307 */ 1326 ALIGN64 BOOL FastPathOutput; /* 2308 */ 1327 ALIGN64 BOOL SaltedChecksum; /* 2309 */ 1328 ALIGN64 BOOL LongCredentialsSupported; /* 2310 */ 1329 ALIGN64 BOOL NoBitmapCompressionHeader; /* 2311 */ 1330 ALIGN64 BOOL BitmapCompressionDisabled; /* 2312 */ 1331 UINT64 padding2368[2368 - 2313]; /* 2313 */ 1332 1333 /* Bitmap Capabilities */ 1334 ALIGN64 BOOL DesktopResize; /* 2368 */ 1335 ALIGN64 BOOL DrawAllowDynamicColorFidelity; /* 2369 */ 1336 ALIGN64 BOOL DrawAllowColorSubsampling; /* 2370 */ 1337 ALIGN64 BOOL DrawAllowSkipAlpha; /* 2371 */ 1338 UINT64 padding2432[2432 - 2372]; /* 2372 */ 1339 1340 /* Order Capabilities */ 1341 ALIGN64 BYTE* OrderSupport; /* 2432 */ 1342 ALIGN64 BOOL BitmapCacheV3Enabled; /* 2433 */ 1343 ALIGN64 BOOL AltSecFrameMarkerSupport; /* 2434 */ 1344 ALIGN64 BOOL AllowUnanouncedOrdersFromServer; /* 2435 */ 1345 UINT64 padding2497[2497 - 2436]; /* 2436 */ 1346 1347 /* Bitmap Cache Capabilities */ 1348 ALIGN64 BOOL BitmapCacheEnabled; /* 2497 */ 1349 ALIGN64 UINT32 BitmapCacheVersion; /* 2498 */ 1350 ALIGN64 BOOL AllowCacheWaitingList; /* 2499 */ 1351 ALIGN64 BOOL BitmapCachePersistEnabled; /* 2500 */ 1352 ALIGN64 UINT32 BitmapCacheV2NumCells; /* 2501 */ 1353 ALIGN64 BITMAP_CACHE_V2_CELL_INFO* BitmapCacheV2CellInfo; /* 2502 */ 1354 UINT64 padding2560[2560 - 2503]; /* 2503 */ 1355 1356 /* Pointer Capabilities */ 1357 ALIGN64 BOOL ColorPointerFlag; /* 2560 */ 1358 ALIGN64 UINT32 PointerCacheSize; /* 2561 */ 1359 UINT64 padding2624[2622 - 2562]; /* 2562 */ 1360 1361 /* Input Capabilities */ 1362 ALIGN64 char* KeyboardRemappingList; /* 2622 */ 1363 ALIGN64 UINT32 KeyboardCodePage; /* 2623 */ 1364 ALIGN64 UINT32 KeyboardLayout; /* 2624 */ 1365 ALIGN64 UINT32 KeyboardType; /* 2625 */ 1366 ALIGN64 UINT32 KeyboardSubType; /* 2626 */ 1367 ALIGN64 UINT32 KeyboardFunctionKey; /* 2627 */ 1368 ALIGN64 char* ImeFileName; /* 2628 */ 1369 ALIGN64 BOOL UnicodeInput; /* 2629 */ 1370 ALIGN64 BOOL FastPathInput; /* 2630 */ 1371 ALIGN64 BOOL MultiTouchInput; /* 2631 */ 1372 ALIGN64 BOOL MultiTouchGestures; /* 2632 */ 1373 ALIGN64 UINT32 KeyboardHook; /* 2633 */ 1374 ALIGN64 BOOL HasHorizontalWheel; /* 2634 */ 1375 ALIGN64 BOOL HasExtendedMouseEvent; /* 2635 */ 1376 UINT64 padding2688[2688 - 2636]; /* 2636 */ 1377 1378 /* Brush Capabilities */ 1379 ALIGN64 UINT32 BrushSupportLevel; /* 2688 */ 1380 UINT64 padding2752[2752 - 2689]; /* 2689 */ 1381 1382 /* Glyph Cache Capabilities */ 1383 ALIGN64 UINT32 GlyphSupportLevel; /* 2752 */ 1384 ALIGN64 GLYPH_CACHE_DEFINITION* GlyphCache; /* 2753 */ 1385 ALIGN64 GLYPH_CACHE_DEFINITION* FragCache; /* 2754 */ 1386 UINT64 padding2816[2816 - 2755]; /* 2755 */ 1387 1388 /* Offscreen Bitmap Cache */ 1389 ALIGN64 UINT32 OffscreenSupportLevel; /* 2816 */ 1390 ALIGN64 UINT32 OffscreenCacheSize; /* 2817 */ 1391 ALIGN64 UINT32 OffscreenCacheEntries; /* 2818 */ 1392 UINT64 padding2880[2880 - 2819]; /* 2819 */ 1393 1394 /* Virtual Channel Capabilities */ 1395 ALIGN64 UINT32 VirtualChannelCompressionFlags; /* 2880 */ 1396 ALIGN64 UINT32 VirtualChannelChunkSize; /* 2881 */ 1397 UINT64 padding2944[2944 - 2882]; /* 2882 */ 1398 1399 /* Sound Capabilities */ 1400 ALIGN64 BOOL SoundBeepsEnabled; /* 2944 */ 1401 UINT64 padding3008[3008 - 2945]; /* 2945 */ 1402 UINT64 padding3072[3072 - 3008]; /* 3008 */ 1403 1404 /** 1405 * Optional Capabilities 1406 */ 1407 1408 /* Bitmap Cache Host Capabilities */ 1409 UINT64 padding3136[3136 - 3072]; /* 3072 */ 1410 1411 /* Control Capabilities */ 1412 UINT64 padding3200[3200 - 3136]; /* 3136 */ 1413 1414 /* Window Activation Capabilities */ 1415 UINT64 padding3264[3264 - 3200]; /* 3200 */ 1416 1417 /* Font Capabilities */ 1418 UINT64 padding3328[3328 - 3264]; /* 3264 */ 1419 1420 /* Multifragment Update Capabilities */ 1421 ALIGN64 UINT32 MultifragMaxRequestSize; /* 3328 */ 1422 UINT64 padding3392[3392 - 3329]; /* 3329 */ 1423 1424 /* Large Pointer Update Capabilities */ 1425 ALIGN64 UINT32 LargePointerFlag; /* 3392 */ 1426 UINT64 padding3456[3456 - 3393]; /* 3393 */ 1427 1428 /* Desktop Composition Capabilities */ 1429 ALIGN64 UINT32 CompDeskSupportLevel; /* 3456 */ 1430 UINT64 padding3520[3520 - 3457]; /* 3457 */ 1431 1432 /* Surface Commands Capabilities */ 1433 ALIGN64 BOOL SurfaceCommandsEnabled; /* 3520 */ 1434 ALIGN64 BOOL FrameMarkerCommandEnabled; /* 3521 */ 1435 ALIGN64 BOOL SurfaceFrameMarkerEnabled; /* 3522 */ 1436 UINT64 padding3584[3584 - 3523]; /* 3523 */ 1437 UINT64 padding3648[3648 - 3584]; /* 3584 */ 1438 1439 /* 1440 * Bitmap Codecs Capabilities 1441 */ 1442 1443 /* RemoteFX */ 1444 ALIGN64 BOOL RemoteFxOnly; /* 3648 */ 1445 ALIGN64 BOOL RemoteFxCodec; /* 3649 */ 1446 ALIGN64 UINT32 RemoteFxCodecId; /* 3650 */ 1447 ALIGN64 UINT32 RemoteFxCodecMode; /* 3651 */ 1448 ALIGN64 BOOL RemoteFxImageCodec; /* 3652 */ 1449 ALIGN64 UINT32 RemoteFxCaptureFlags; /* 3653 */ 1450 UINT64 padding3712[3712 - 3654]; /* 3654 */ 1451 1452 /* NSCodec */ 1453 ALIGN64 BOOL NSCodec; /* 3712 */ 1454 ALIGN64 UINT32 NSCodecId; /* 3713 */ 1455 ALIGN64 UINT32 FrameAcknowledge; /* 3714 */ 1456 ALIGN64 UINT32 NSCodecColorLossLevel; /* 3715 */ 1457 ALIGN64 BOOL NSCodecAllowSubsampling; /* 3716 */ 1458 ALIGN64 BOOL NSCodecAllowDynamicColorFidelity; /* 3717 */ 1459 UINT64 padding3776[3776 - 3718]; /* 3718 */ 1460 1461 /* JPEG */ 1462 ALIGN64 BOOL JpegCodec; /* 3776 */ 1463 ALIGN64 UINT32 JpegCodecId; /* 3777 */ 1464 ALIGN64 UINT32 JpegQuality; /* 3778 */ 1465 UINT64 padding3840[3840 - 3779]; /* 3779 */ 1466 1467 ALIGN64 BOOL GfxThinClient; /* 3840 */ 1468 ALIGN64 BOOL GfxSmallCache; /* 3841 */ 1469 ALIGN64 BOOL GfxProgressive; /* 3842 */ 1470 ALIGN64 BOOL GfxProgressiveV2; /* 3843 */ 1471 ALIGN64 BOOL GfxH264; /* 3844 */ 1472 ALIGN64 BOOL GfxAVC444; /* 3845 */ 1473 ALIGN64 BOOL GfxSendQoeAck; /* 3846 */ 1474 ALIGN64 BOOL GfxAVC444v2; /* 3847 */ 1475 ALIGN64 UINT32 GfxCapsFilter; /* 3848 */ 1476 UINT64 padding3904[3904 - 3849]; /* 3849 */ 1477 1478 /** 1479 * Caches 1480 */ 1481 1482 /* Bitmap Cache V3 */ 1483 ALIGN64 UINT32 BitmapCacheV3CodecId; /* 3904 */ 1484 UINT64 padding3968[3968 - 3905]; /* 3905 */ 1485 1486 /* Draw Nine Grid */ 1487 ALIGN64 BOOL DrawNineGridEnabled; /* 3968 */ 1488 ALIGN64 UINT32 DrawNineGridCacheSize; /* 3969 */ 1489 ALIGN64 UINT32 DrawNineGridCacheEntries; /* 3970 */ 1490 UINT64 padding4032[4032 - 3971]; /* 3971 */ 1491 1492 /* Draw GDI+ */ 1493 ALIGN64 BOOL DrawGdiPlusEnabled; /* 4032 */ 1494 ALIGN64 BOOL DrawGdiPlusCacheEnabled; /* 4033 */ 1495 UINT64 padding4096[4096 - 4034]; /* 4034 */ 1496 UINT64 padding4160[4160 - 4096]; /* 4096 */ 1497 1498 /** 1499 * Device Redirection 1500 */ 1501 1502 /* Device Redirection */ 1503 ALIGN64 BOOL DeviceRedirection; /* 4160 */ 1504 ALIGN64 UINT32 DeviceCount; /* 4161 */ 1505 ALIGN64 UINT32 DeviceArraySize; /* 4162 */ 1506 ALIGN64 RDPDR_DEVICE** DeviceArray; /* 4163 */ 1507 UINT64 padding4288[4288 - 4164]; /* 4164 */ 1508 1509 /* Drive Redirection */ 1510 ALIGN64 BOOL RedirectDrives; /* 4288 */ 1511 ALIGN64 BOOL RedirectHomeDrive; /* 4289 */ 1512 ALIGN64 char* DrivesToRedirect; /* 4290 */ 1513 UINT64 padding4416[4416 - 4291]; /* 4291 */ 1514 1515 /* Smartcard Redirection */ 1516 ALIGN64 BOOL RedirectSmartCards; /* 4416 */ 1517 UINT64 padding4544[4544 - 4417]; /* 4417 */ 1518 1519 /* Printer Redirection */ 1520 ALIGN64 BOOL RedirectPrinters; /* 4544 */ 1521 UINT64 padding4672[4672 - 4545]; /* 4545 */ 1522 1523 /* Serial and Parallel Port Redirection */ 1524 ALIGN64 BOOL RedirectSerialPorts; /* 4672 */ 1525 ALIGN64 BOOL RedirectParallelPorts; /* 4673 */ 1526 ALIGN64 BOOL PreferIPv6OverIPv4; /* 4674 */ 1527 UINT64 padding4800[4800 - 4675]; /* 4675 */ 1528 1529 /** 1530 * Other Redirection 1531 */ 1532 1533 ALIGN64 BOOL RedirectClipboard; /* 4800 */ 1534 UINT64 padding4928[4928 - 4801]; /* 4801 */ 1535 1536 /** 1537 * Static Virtual Channels 1538 */ 1539 1540 ALIGN64 UINT32 StaticChannelCount; /* 4928 */ 1541 ALIGN64 UINT32 StaticChannelArraySize; /* 4929 */ 1542 ALIGN64 ADDIN_ARGV** StaticChannelArray; /* 4930 */ 1543 UINT64 padding5056[5056 - 4931]; /* 4931 */ 1544 1545 /** 1546 * Dynamic Virtual Channels 1547 */ 1548 1549 ALIGN64 UINT32 DynamicChannelCount; /* 5056 */ 1550 ALIGN64 UINT32 DynamicChannelArraySize; /* 5057 */ 1551 ALIGN64 ADDIN_ARGV** DynamicChannelArray; /* 5058 */ 1552 ALIGN64 BOOL SupportDynamicChannels; /* 5059 */ 1553 UINT64 padding5184[5184 - 5060]; /* 5060 */ 1554 1555 ALIGN64 BOOL SupportEchoChannel; /* 5184 */ 1556 ALIGN64 BOOL SupportDisplayControl; /* 5185 */ 1557 ALIGN64 BOOL SupportGeometryTracking; /* 5186 */ 1558 ALIGN64 BOOL SupportSSHAgentChannel; /* 5187 */ 1559 ALIGN64 BOOL SupportVideoOptimized; /* 5188 */ 1560 ALIGN64 char* RDP2TCPArgs; /* 5189 */ 1561 ALIGN64 BOOL TcpKeepAlive; /* 5190 */ 1562 ALIGN64 UINT32 TcpKeepAliveRetries; /* 5191 */ 1563 ALIGN64 UINT32 TcpKeepAliveDelay; /* 5192 */ 1564 ALIGN64 UINT32 TcpKeepAliveInterval; /* 5193 */ 1565 ALIGN64 UINT32 TcpAckTimeout; /* 5194 */ 1566 UINT64 padding5197[5197 - 5195]; /* 5195 */ 1567 ALIGN64 UINT32 TcpConnectTimeout; /* 5197 */ 1568 UINT64 padding5312[5312 - 5198]; /* 5198 */ 1569 1570 /** 1571 * WARNING: End of ABI stable zone! 1572 * 1573 * The zone below this point is ABI unstable, and 1574 * is therefore potentially subject to ABI breakage. 1575 */ 1576 1577 /* 1578 * Extensions 1579 */ 1580 1581 /* Extensions */ 1582 ALIGN64 INT32 num_extensions; /* */ 1583 ALIGN64 struct rdp_ext_set extensions[16]; /* */ 1584 1585 ALIGN64 BYTE* SettingsModified; /* byte array marking fields that have been modified from their 1586 default value - currently UNUSED! */ 1587 ALIGN64 char* ActionScript; 1588 ALIGN64 DWORD Floatbar; 1589 ALIGN64 char* XSelectionAtom; 1590}; 1591typedef struct rdp_settings rdpSettings; 1592 1593enum rdp_settings_type 1594{ 1595 RDP_SETTINGS_TYPE_BOOL, 1596 RDP_SETTINGS_TYPE_UINT16, 1597 RDP_SETTINGS_TYPE_INT16, 1598 RDP_SETTINGS_TYPE_UINT32, 1599 RDP_SETTINGS_TYPE_INT32, 1600 RDP_SETTINGS_TYPE_UINT64, 1601 RDP_SETTINGS_TYPE_INT64, 1602 RDP_SETTINGS_TYPE_STRING, 1603 RDP_SETTINGS_TYPE_POINTER 1604}; 1605 1606#ifdef __cplusplus 1607extern "C" 1608{ 1609#endif 1610 1611/** 1612 * rdpSettings creation flags 1613 */ 1614#define FREERDP_SETTINGS_SERVER_MODE 0x00000001 1615 1616 FREERDP_API rdpSettings* freerdp_settings_new(DWORD flags); 1617 FREERDP_API rdpSettings* freerdp_settings_clone(const rdpSettings* settings); 1618 FREERDP_API BOOL freerdp_settings_copy(rdpSettings* dst, const rdpSettings* src); 1619 FREERDP_API void freerdp_settings_free(rdpSettings* settings); 1620 1621 FREERDP_API int freerdp_addin_set_argument(ADDIN_ARGV* args, char* argument); 1622 FREERDP_API int freerdp_addin_replace_argument(ADDIN_ARGV* args, char* previous, 1623 char* argument); 1624 FREERDP_API int freerdp_addin_set_argument_value(ADDIN_ARGV* args, char* option, char* value); 1625 FREERDP_API int freerdp_addin_replace_argument_value(ADDIN_ARGV* args, char* previous, 1626 char* option, char* value); 1627 1628 FREERDP_API BOOL freerdp_device_collection_add(rdpSettings* settings, RDPDR_DEVICE* device); 1629 FREERDP_API RDPDR_DEVICE* freerdp_device_collection_find(rdpSettings* settings, 1630 const char* name); 1631 FREERDP_API RDPDR_DEVICE* freerdp_device_collection_find_type(rdpSettings* settings, 1632 UINT32 type); 1633 FREERDP_API RDPDR_DEVICE* freerdp_device_clone(RDPDR_DEVICE* device); 1634 FREERDP_API void freerdp_device_collection_free(rdpSettings* settings); 1635 1636 FREERDP_API BOOL freerdp_static_channel_collection_add(rdpSettings* settings, 1637 ADDIN_ARGV* channel); 1638 FREERDP_API ADDIN_ARGV* freerdp_static_channel_collection_find(rdpSettings* settings, 1639 const char* name); 1640 FREERDP_API ADDIN_ARGV* freerdp_static_channel_clone(ADDIN_ARGV* channel); 1641 FREERDP_API void freerdp_static_channel_collection_free(rdpSettings* settings); 1642 1643 FREERDP_API BOOL freerdp_dynamic_channel_collection_add(rdpSettings* settings, 1644 ADDIN_ARGV* channel); 1645 FREERDP_API ADDIN_ARGV* freerdp_dynamic_channel_collection_find(rdpSettings* settings, 1646 const char* name); 1647 FREERDP_API ADDIN_ARGV* freerdp_dynamic_channel_clone(ADDIN_ARGV* channel); 1648 FREERDP_API void freerdp_dynamic_channel_collection_free(rdpSettings* settings); 1649 1650 FREERDP_API void freerdp_target_net_addresses_free(rdpSettings* settings); 1651 FREERDP_API BOOL freerdp_target_net_addresses_copy(rdpSettings* settings, char** addresses, 1652 UINT32 count); 1653 1654 FREERDP_API void freerdp_performance_flags_make(rdpSettings* settings); 1655 FREERDP_API void freerdp_performance_flags_split(rdpSettings* settings); 1656 1657 FREERDP_API BOOL freerdp_set_gateway_usage_method(rdpSettings* settings, 1658 UINT32 GatewayUsageMethod); 1659 FREERDP_API void freerdp_update_gateway_usage_method(rdpSettings* settings, 1660 UINT32 GatewayEnabled, 1661 UINT32 GatewayBypassLocal); 1662 1663#if !defined(DEFINE_NO_DEPRECATED) 1664 /* DEPRECATED: 1665 * the functions freerdp_get_param_* and freerdp_set_param_* are deprecated. 1666 * use freerdp_settings_get_* and freerdp_settings_set_* as a replacement! 1667 */ 1668 FREERDP_API WINPR_DEPRECATED(BOOL freerdp_get_param_bool(const rdpSettings* settings, int id)); 1669 FREERDP_API WINPR_DEPRECATED(int freerdp_set_param_bool(rdpSettings* settings, int id, 1670 BOOL param)); 1671 1672 FREERDP_API WINPR_DEPRECATED(int freerdp_get_param_int(const rdpSettings* settings, int id)); 1673 FREERDP_API WINPR_DEPRECATED(int freerdp_set_param_int(rdpSettings* settings, int id, 1674 int param)); 1675 1676 FREERDP_API WINPR_DEPRECATED(UINT32 freerdp_get_param_uint32(const rdpSettings* settings, 1677 int id)); 1678 FREERDP_API WINPR_DEPRECATED(int freerdp_set_param_uint32(rdpSettings* settings, int id, 1679 UINT32 param)); 1680 1681 FREERDP_API WINPR_DEPRECATED(UINT64 freerdp_get_param_uint64(const rdpSettings* settings, 1682 int id)); 1683 FREERDP_API WINPR_DEPRECATED(int freerdp_set_param_uint64(rdpSettings* settings, int id, 1684 UINT64 param)); 1685 1686 FREERDP_API WINPR_DEPRECATED(char* freerdp_get_param_string(const rdpSettings* settings, 1687 int id)); 1688 FREERDP_API WINPR_DEPRECATED(int freerdp_set_param_string(rdpSettings* settings, int id, 1689 const char* param)); 1690#endif 1691 1692 FREERDP_API BOOL freerdp_settings_get_bool(const rdpSettings* settings, size_t id); 1693 FREERDP_API BOOL freerdp_settings_set_bool(rdpSettings* settings, size_t id, BOOL param); 1694 1695 FREERDP_API INT16 freerdp_settings_get_int16(const rdpSettings* settings, size_t id); 1696 FREERDP_API BOOL freerdp_settings_set_int16(rdpSettings* settings, size_t id, INT16 param); 1697 1698 FREERDP_API UINT16 freerdp_settings_get_uint16(const rdpSettings* settings, size_t id); 1699 FREERDP_API BOOL freerdp_settings_set_uint16(rdpSettings* settings, size_t id, UINT16 param); 1700 1701 FREERDP_API INT32 freerdp_settings_get_int32(const rdpSettings* settings, size_t id); 1702 FREERDP_API BOOL freerdp_settings_set_int32(rdpSettings* settings, size_t id, INT32 param); 1703 1704 FREERDP_API UINT32 freerdp_settings_get_uint32(const rdpSettings* settings, size_t id); 1705 FREERDP_API BOOL freerdp_settings_set_uint32(rdpSettings* settings, size_t id, UINT32 param); 1706 1707 FREERDP_API INT64 freerdp_settings_get_int64(const rdpSettings* settings, size_t id); 1708 FREERDP_API BOOL freerdp_settings_set_int64(rdpSettings* settings, size_t id, INT64 param); 1709 1710 FREERDP_API UINT64 freerdp_settings_get_uint64(const rdpSettings* settings, size_t id); 1711 FREERDP_API BOOL freerdp_settings_set_uint64(rdpSettings* settings, size_t id, UINT64 param); 1712 1713 FREERDP_API const char* freerdp_settings_get_string(const rdpSettings* settings, size_t id); 1714 FREERDP_API BOOL freerdp_settings_set_string(rdpSettings* settings, size_t id, 1715 const char* param); 1716 1717 FREERDP_API const void* freerdp_settings_get_pointer(const rdpSettings* settings, size_t id); 1718 1719 FREERDP_API BOOL freerdp_settings_set_value_for_name(rdpSettings* settings, const char* name, 1720 const char* value); 1721 1722 FREERDP_API SSIZE_T freerdp_settings_get_key_for_name(const char* value); 1723 FREERDP_API SSIZE_T freerdp_settings_get_type_for_name(const char* value); 1724 FREERDP_API SSIZE_T freerdp_settings_get_type_for_key(size_t key); 1725 FREERDP_API const char* freerdp_settings_get_name_for_key(size_t key); 1726 1727 FREERDP_API char* freerdp_rail_support_flags_to_string(UINT32 flags, char* buffer, 1728 size_t length); 1729 1730#ifdef __cplusplus 1731} 1732#endif 1733 1734#endif /* FREERDP_SETTINGS_H */