rdpSettings is the opaque configuration object that holds every parameter for an RDP session: server address, credentials, display geometry, security protocols, performance flags, and much more. Settings are accessed exclusively through the typed accessor functions described on this page.
The
rdpSettings struct is opaque by default (controlled by WITH_OPAQUE_SETTINGS). Always use the freerdp_settings_get_* / freerdp_settings_set_* API rather than accessing struct fields directly.Lifecycle
When using
freerdp_client_context_new(), the settings object is created automatically and is accessible at context->settings. You do not need to call freerdp_settings_new() yourself.Settings Lifetime and Instances
FreeRDP maintains up to three simultaneous settings objects per connection:- Initial configuration — set by the client application, persists for the whole process lifetime.
- Remote peer settings — received from the server during capability exchange; valid until disconnect.
- Merged settings — combined result used for the active session.
freerdp_persist_credentials() after modifying credentials post-PreConnect so they survive reconnects.
Typed Accessor Functions
Settings keys are typed; each key belongs to exactly one accessor family.Boolean
Integer (16/32/64-bit, signed and unsigned)
String
Pointer
Set by Name
For scripting, configuration files, or command-line handling you can set any key by its string name:value string is parsed according to the key type. Boolean values accept "true", "false", "on", "off", "0", "1" (case-insensitive).
Validation
freerdp_settings_set_* return value individually.
Key Settings Reference
Connection Target
Credentials
Display
Security
Performance
Miscellaneous
Introspection Helpers
Code Example
A typicalPreConnect callback that configures connection parameters:
