FreeRDP
rdp.h File Reference
#include <freerdp/config.h>
#include "nla.h"
#include "aad.h"
#include "mcs.h"
#include "tpkt.h"
#include "../codec/bulk.h"
#include "fastpath.h"
#include "tpdu.h"
#include "nego.h"
#include "input.h"
#include "update.h"
#include "license.h"
#include "errinfo.h"
#include "autodetect.h"
#include "heartbeat.h"
#include "multitransport.h"
#include "security.h"
#include "transport.h"
#include "connection.h"
#include "redirection.h"
#include "capabilities.h"
#include "channels.h"
#include <freerdp/freerdp.h>
#include <freerdp/settings.h>
#include <freerdp/log.h>
#include <freerdp/api.h>
#include <winpr/stream.h>
#include <winpr/crypto.h>
This graph shows which files directly or indirectly include this file:

Data Structures

struct  rdpRdp
 

Macros

#define SEC_EXCHANGE_PKT   0x0001
 
#define SEC_TRANSPORT_REQ   0x0002
 
#define SEC_TRANSPORT_RSP   0x0004
 
#define SEC_ENCRYPT   0x0008
 
#define SEC_RESET_SEQNO   0x0010
 
#define SEC_IGNORE_SEQNO   0x0020
 
#define SEC_INFO_PKT   0x0040
 
#define SEC_LICENSE_PKT   0x0080
 
#define SEC_LICENSE_ENCRYPT_CS   0x0200
 
#define SEC_LICENSE_ENCRYPT_SC   0x0200
 
#define SEC_REDIRECTION_PKT   0x0400
 
#define SEC_SECURE_CHECKSUM   0x0800
 
#define SEC_AUTODETECT_REQ   0x1000
 
#define SEC_AUTODETECT_RSP   0x2000
 
#define SEC_HEARTBEAT   0x4000
 
#define SEC_FLAGSHI_VALID   0x8000
 
#define SEC_PKT_CS_MASK   (SEC_EXCHANGE_PKT | SEC_INFO_PKT)
 
#define SEC_PKT_SC_MASK   (SEC_LICENSE_PKT | SEC_REDIRECTION_PKT)
 
#define SEC_PKT_MASK   (SEC_PKT_CS_MASK | SEC_PKT_SC_MASK)
 
#define RDP_SECURITY_HEADER_LENGTH   4
 
#define RDP_SHARE_CONTROL_HEADER_LENGTH   6
 
#define RDP_SHARE_DATA_HEADER_LENGTH   12
 
#define RDP_PACKET_HEADER_MAX_LENGTH   (TPDU_DATA_LENGTH + MCS_SEND_DATA_HEADER_MAX_LENGTH)
 
#define PDU_TYPE_DEMAND_ACTIVE   0x1
 
#define PDU_TYPE_CONFIRM_ACTIVE   0x3
 
#define PDU_TYPE_DEACTIVATE_ALL   0x6
 
#define PDU_TYPE_DATA   0x7
 
#define PDU_TYPE_SERVER_REDIRECTION   0xA
 
#define PDU_TYPE_FLOW_TEST   0x41
 
#define PDU_TYPE_FLOW_RESPONSE   0x42
 
#define PDU_TYPE_FLOW_STOP   0x43
 
#define STREAM_UNDEFINED   0x00
 
#define STREAM_LOW   0x01
 
#define STREAM_MED   0x02
 
#define STREAM_HI   0x04
 
#define RDP_TAG   FREERDP_TAG("core.rdp")
 
#define DEBUG_RDP(rdp, ...)
 

Enumerations

enum  rdpFinalizePduType {
  FINALIZE_SC_SYNCHRONIZE_PDU = 0x01 , FINALIZE_SC_CONTROL_COOPERATE_PDU = 0x02 , FINALIZE_SC_CONTROL_GRANTED_PDU = 0x04 , FINALIZE_SC_FONT_MAP_PDU = 0x08 ,
  FINALIZE_CS_SYNCHRONIZE_PDU = 0x10 , FINALIZE_CS_CONTROL_COOPERATE_PDU = 0x20 , FINALIZE_CS_CONTROL_REQUEST_PDU = 0x40 , FINALIZE_CS_PERSISTENT_KEY_LIST_PDU = 0x80 ,
  FINALIZE_CS_FONT_LIST_PDU = 0x100 , FINALIZE_DEACTIVATE_REACTIVATE = 0x200
}
 
enum  rdpPduType {
  DATA_PDU_TYPE_UPDATE = 0x02 , DATA_PDU_TYPE_CONTROL = 0x14 , DATA_PDU_TYPE_POINTER = 0x1B , DATA_PDU_TYPE_INPUT = 0x1C ,
  DATA_PDU_TYPE_SYNCHRONIZE = 0x1F , DATA_PDU_TYPE_REFRESH_RECT = 0x21 , DATA_PDU_TYPE_PLAY_SOUND = 0x22 , DATA_PDU_TYPE_SUPPRESS_OUTPUT = 0x23 ,
  DATA_PDU_TYPE_SHUTDOWN_REQUEST = 0x24 , DATA_PDU_TYPE_SHUTDOWN_DENIED = 0x25 , DATA_PDU_TYPE_SAVE_SESSION_INFO = 0x26 , DATA_PDU_TYPE_FONT_LIST = 0x27 ,
  DATA_PDU_TYPE_FONT_MAP = 0x28 , DATA_PDU_TYPE_SET_KEYBOARD_INDICATORS = 0x29 , DATA_PDU_TYPE_BITMAP_CACHE_PERSISTENT_LIST = 0x2B , DATA_PDU_TYPE_BITMAP_CACHE_ERROR = 0x2C ,
  DATA_PDU_TYPE_SET_KEYBOARD_IME_STATUS = 0x2D , DATA_PDU_TYPE_OFFSCREEN_CACHE_ERROR = 0x2E , DATA_PDU_TYPE_SET_ERROR_INFO = 0x2F , DATA_PDU_TYPE_DRAW_NINEGRID_ERROR = 0x30 ,
  DATA_PDU_TYPE_DRAW_GDIPLUS_ERROR = 0x31 , DATA_PDU_TYPE_ARC_STATUS = 0x32 , DATA_PDU_TYPE_STATUS_INFO = 0x36 , DATA_PDU_TYPE_MONITOR_LAYOUT = 0x37 ,
  DATA_PDU_TYPE_FRAME_ACKNOWLEDGE = 0x38
}
 

Functions

FREERDP_LOCAL BOOL rdp_read_security_header (rdpRdp *rdp, wStream *s, UINT16 *flags, UINT16 *length)
 Read RDP Security Header. msdn{cc240579}. More...
 
FREERDP_LOCAL BOOL rdp_write_security_header (rdpRdp *rdp, wStream *s, UINT16 flags)
 
FREERDP_LOCAL BOOL rdp_read_share_control_header (rdpRdp *rdp, wStream *s, UINT16 *tpktLength, UINT16 *remainingLength, UINT16 *type, UINT16 *channel_id)
 
FREERDP_LOCAL BOOL rdp_read_share_data_header (rdpRdp *rdp, wStream *s, UINT16 *length, BYTE *type, UINT32 *share_id, BYTE *compressed_type, UINT16 *compressed_len)
 
FREERDP_LOCAL wStreamrdp_send_stream_init (rdpRdp *rdp)
 
FREERDP_LOCAL wStreamrdp_send_stream_pdu_init (rdpRdp *rdp)
 
FREERDP_LOCAL BOOL rdp_read_header (rdpRdp *rdp, wStream *s, UINT16 *length, UINT16 *channel_id)
 
FREERDP_LOCAL BOOL rdp_write_header (rdpRdp *rdp, wStream *s, UINT16 length, UINT16 channel_id)
 
FREERDP_LOCAL BOOL rdp_send_pdu (rdpRdp *rdp, wStream *s, UINT16 type, UINT16 channel_id)
 
FREERDP_LOCAL wStreamrdp_data_pdu_init (rdpRdp *rdp)
 
FREERDP_LOCAL BOOL rdp_send_data_pdu (rdpRdp *rdp, wStream *s, BYTE type, UINT16 channel_id)
 
FREERDP_LOCAL state_run_t rdp_recv_data_pdu (rdpRdp *rdp, wStream *s)
 
FREERDP_LOCAL BOOL rdp_send (rdpRdp *rdp, wStream *s, UINT16 channelId)
 
FREERDP_LOCAL BOOL rdp_send_channel_data (rdpRdp *rdp, UINT16 channelId, const BYTE *data, size_t size)
 
FREERDP_LOCAL BOOL rdp_channel_send_packet (rdpRdp *rdp, UINT16 channelId, size_t totalSize, UINT32 flags, const BYTE *data, size_t chunkSize)
 
FREERDP_LOCAL wStreamrdp_message_channel_pdu_init (rdpRdp *rdp)
 
FREERDP_LOCAL BOOL rdp_send_message_channel_pdu (rdpRdp *rdp, wStream *s, UINT16 sec_flags)
 
FREERDP_LOCAL state_run_t rdp_recv_message_channel_pdu (rdpRdp *rdp, wStream *s, UINT16 securityFlags)
 
FREERDP_LOCAL state_run_t rdp_recv_out_of_sequence_pdu (rdpRdp *rdp, wStream *s, UINT16 pduType, UINT16 length)
 
FREERDP_LOCAL state_run_t rdp_recv_callback (rdpTransport *transport, wStream *s, void *extra)
 
FREERDP_LOCAL int rdp_check_fds (rdpRdp *rdp)
 
FREERDP_LOCAL void rdp_free (rdpRdp *rdp)
 
FREERDP_LOCAL rdpRdp * rdp_new (rdpContext *context)
 
FREERDP_LOCAL BOOL rdp_reset (rdpRdp *rdp)
 
FREERDP_LOCAL BOOL rdp_io_callback_set_event (rdpRdp *rdp, BOOL reset)
 
FREERDP_LOCAL const rdpTransportIo * rdp_get_io_callbacks (rdpRdp *rdp)
 
FREERDP_LOCAL BOOL rdp_set_io_callbacks (rdpRdp *rdp, const rdpTransportIo *io_callbacks)
 
FREERDP_LOCAL BOOL rdp_set_io_callback_context (rdpRdp *rdp, void *usercontext)
 
FREERDP_LOCAL void * rdp_get_io_callback_context (rdpRdp *rdp)
 
const char * data_pdu_type_to_string (UINT8 type)
 
const char * pdu_type_to_str (UINT16 pduType, char *buffer, size_t length)
 
BOOL rdp_finalize_reset_flags (rdpRdp *rdp, BOOL clearAll)
 
BOOL rdp_finalize_set_flag (rdpRdp *rdp, UINT32 flag)
 
BOOL rdp_finalize_is_flag_set (rdpRdp *rdp, UINT32 flag)
 
const char * rdp_finalize_flags_to_str (UINT32 flags, char *buffer, size_t size)
 
BOOL rdp_decrypt (rdpRdp *rdp, wStream *s, UINT16 *pLength, UINT16 securityFlags)
 
BOOL rdp_set_error_info (rdpRdp *rdp, UINT32 errorInfo)
 
BOOL rdp_send_error_info (rdpRdp *rdp)
 
void rdp_free_rc4_encrypt_keys (rdpRdp *rdp)
 
BOOL rdp_reset_rc4_encrypt_keys (rdpRdp *rdp)
 
void rdp_free_rc4_decrypt_keys (rdpRdp *rdp)
 
BOOL rdp_reset_rc4_decrypt_keys (rdpRdp *rdp)
 
const char * rdp_security_flag_string (UINT32 securityFlags, char *buffer, size_t size)
 
BOOL rdp_set_backup_settings (rdpRdp *rdp)
 
BOOL rdp_reset_runtime_settings (rdpRdp *rdp)
 
void rdp_log_build_warnings (rdpRdp *rdp)
 

Macro Definition Documentation

◆ DEBUG_RDP

#define DEBUG_RDP (   rdp,
  ... 
)
Value:
do \
{ \
} while (0)

◆ PDU_TYPE_CONFIRM_ACTIVE

#define PDU_TYPE_CONFIRM_ACTIVE   0x3

◆ PDU_TYPE_DATA

#define PDU_TYPE_DATA   0x7

◆ PDU_TYPE_DEACTIVATE_ALL

#define PDU_TYPE_DEACTIVATE_ALL   0x6

◆ PDU_TYPE_DEMAND_ACTIVE

#define PDU_TYPE_DEMAND_ACTIVE   0x1

◆ PDU_TYPE_FLOW_RESPONSE

#define PDU_TYPE_FLOW_RESPONSE   0x42

◆ PDU_TYPE_FLOW_STOP

#define PDU_TYPE_FLOW_STOP   0x43

◆ PDU_TYPE_FLOW_TEST

#define PDU_TYPE_FLOW_TEST   0x41

◆ PDU_TYPE_SERVER_REDIRECTION

#define PDU_TYPE_SERVER_REDIRECTION   0xA

◆ RDP_PACKET_HEADER_MAX_LENGTH

#define RDP_PACKET_HEADER_MAX_LENGTH   (TPDU_DATA_LENGTH + MCS_SEND_DATA_HEADER_MAX_LENGTH)

◆ RDP_SECURITY_HEADER_LENGTH

#define RDP_SECURITY_HEADER_LENGTH   4

◆ RDP_SHARE_CONTROL_HEADER_LENGTH

#define RDP_SHARE_CONTROL_HEADER_LENGTH   6

◆ RDP_SHARE_DATA_HEADER_LENGTH

#define RDP_SHARE_DATA_HEADER_LENGTH   12

◆ RDP_TAG

#define RDP_TAG   FREERDP_TAG("core.rdp")

◆ SEC_AUTODETECT_REQ

#define SEC_AUTODETECT_REQ   0x1000

◆ SEC_AUTODETECT_RSP

#define SEC_AUTODETECT_RSP   0x2000

◆ SEC_ENCRYPT

#define SEC_ENCRYPT   0x0008

◆ SEC_EXCHANGE_PKT

#define SEC_EXCHANGE_PKT   0x0001

FreeRDP: A Remote Desktop Protocol Implementation RDP Core

Copyright 2011 Marc-Andre Moreau marca.nosp@m.ndre.nosp@m..more.nosp@m.au@g.nosp@m.mail..nosp@m.com Copyright 2014 DI (FH) Martin Haimberger marti.nosp@m.n.ha.nosp@m.imber.nosp@m.ger@.nosp@m.thinc.nosp@m.ast..nosp@m.com

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

◆ SEC_FLAGSHI_VALID

#define SEC_FLAGSHI_VALID   0x8000

◆ SEC_HEARTBEAT

#define SEC_HEARTBEAT   0x4000

◆ SEC_IGNORE_SEQNO

#define SEC_IGNORE_SEQNO   0x0020

◆ SEC_INFO_PKT

#define SEC_INFO_PKT   0x0040

◆ SEC_LICENSE_ENCRYPT_CS

#define SEC_LICENSE_ENCRYPT_CS   0x0200

◆ SEC_LICENSE_ENCRYPT_SC

#define SEC_LICENSE_ENCRYPT_SC   0x0200

◆ SEC_LICENSE_PKT

#define SEC_LICENSE_PKT   0x0080

◆ SEC_PKT_CS_MASK

#define SEC_PKT_CS_MASK   (SEC_EXCHANGE_PKT | SEC_INFO_PKT)

◆ SEC_PKT_MASK

#define SEC_PKT_MASK   (SEC_PKT_CS_MASK | SEC_PKT_SC_MASK)

◆ SEC_PKT_SC_MASK

#define SEC_PKT_SC_MASK   (SEC_LICENSE_PKT | SEC_REDIRECTION_PKT)

◆ SEC_REDIRECTION_PKT

#define SEC_REDIRECTION_PKT   0x0400

◆ SEC_RESET_SEQNO

#define SEC_RESET_SEQNO   0x0010

◆ SEC_SECURE_CHECKSUM

#define SEC_SECURE_CHECKSUM   0x0800

◆ SEC_TRANSPORT_REQ

#define SEC_TRANSPORT_REQ   0x0002

◆ SEC_TRANSPORT_RSP

#define SEC_TRANSPORT_RSP   0x0004

◆ STREAM_HI

#define STREAM_HI   0x04

◆ STREAM_LOW

#define STREAM_LOW   0x01

◆ STREAM_MED

#define STREAM_MED   0x02

◆ STREAM_UNDEFINED

#define STREAM_UNDEFINED   0x00

Enumeration Type Documentation

◆ rdpFinalizePduType

Enumerator
FINALIZE_SC_SYNCHRONIZE_PDU 
FINALIZE_SC_CONTROL_COOPERATE_PDU 
FINALIZE_SC_CONTROL_GRANTED_PDU 
FINALIZE_SC_FONT_MAP_PDU 
FINALIZE_CS_SYNCHRONIZE_PDU 
FINALIZE_CS_CONTROL_COOPERATE_PDU 
FINALIZE_CS_CONTROL_REQUEST_PDU 
FINALIZE_CS_PERSISTENT_KEY_LIST_PDU 
FINALIZE_CS_FONT_LIST_PDU 
FINALIZE_DEACTIVATE_REACTIVATE 

◆ rdpPduType

enum rdpPduType
Enumerator
DATA_PDU_TYPE_UPDATE 
DATA_PDU_TYPE_CONTROL 
DATA_PDU_TYPE_POINTER 
DATA_PDU_TYPE_INPUT 
DATA_PDU_TYPE_SYNCHRONIZE 
DATA_PDU_TYPE_REFRESH_RECT 
DATA_PDU_TYPE_PLAY_SOUND 
DATA_PDU_TYPE_SUPPRESS_OUTPUT 
DATA_PDU_TYPE_SHUTDOWN_REQUEST 
DATA_PDU_TYPE_SHUTDOWN_DENIED 
DATA_PDU_TYPE_SAVE_SESSION_INFO 
DATA_PDU_TYPE_FONT_LIST 
DATA_PDU_TYPE_FONT_MAP 
DATA_PDU_TYPE_SET_KEYBOARD_INDICATORS 
DATA_PDU_TYPE_BITMAP_CACHE_PERSISTENT_LIST 
DATA_PDU_TYPE_BITMAP_CACHE_ERROR 
DATA_PDU_TYPE_SET_KEYBOARD_IME_STATUS 
DATA_PDU_TYPE_OFFSCREEN_CACHE_ERROR 
DATA_PDU_TYPE_SET_ERROR_INFO 
DATA_PDU_TYPE_DRAW_NINEGRID_ERROR 
DATA_PDU_TYPE_DRAW_GDIPLUS_ERROR 
DATA_PDU_TYPE_ARC_STATUS 
DATA_PDU_TYPE_STATUS_INFO 
DATA_PDU_TYPE_MONITOR_LAYOUT 
DATA_PDU_TYPE_FRAME_ACKNOWLEDGE 

Function Documentation

◆ data_pdu_type_to_string()

const char* data_pdu_type_to_string ( UINT8  type)
Here is the caller graph for this function:

◆ pdu_type_to_str()

const char* pdu_type_to_str ( UINT16  pduType,
char *  buffer,
size_t  length 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ rdp_channel_send_packet()

FREERDP_LOCAL BOOL rdp_channel_send_packet ( rdpRdp *  rdp,
UINT16  channelId,
size_t  totalSize,
UINT32  flags,
const BYTE data,
size_t  chunkSize 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ rdp_check_fds()

FREERDP_LOCAL int rdp_check_fds ( rdpRdp *  rdp)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ rdp_data_pdu_init()

FREERDP_LOCAL wStream* rdp_data_pdu_init ( rdpRdp *  rdp)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ rdp_decrypt()

BOOL rdp_decrypt ( rdpRdp *  rdp,
wStream s,
UINT16 pLength,
UINT16  securityFlags 
)

Decrypt an RDP packet.

Parameters
rdpRDP module
sstream
pLengthA pointer to the result variable, must not be NULL
securityFlagsthe security flags to apply
Returns
TRUE for success, FALSE otherwise
Here is the call graph for this function:
Here is the caller graph for this function:

◆ rdp_finalize_flags_to_str()

const char* rdp_finalize_flags_to_str ( UINT32  flags,
char *  buffer,
size_t  size 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ rdp_finalize_is_flag_set()

BOOL rdp_finalize_is_flag_set ( rdpRdp *  rdp,
UINT32  flag 
)
Here is the caller graph for this function:

◆ rdp_finalize_reset_flags()

BOOL rdp_finalize_reset_flags ( rdpRdp *  rdp,
BOOL  clearAll 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ rdp_finalize_set_flag()

BOOL rdp_finalize_set_flag ( rdpRdp *  rdp,
UINT32  flag 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ rdp_free()

FREERDP_LOCAL void rdp_free ( rdpRdp *  rdp)

Free RDP module.

Parameters
rdpRDP module to be freed
Here is the call graph for this function:
Here is the caller graph for this function:

◆ rdp_free_rc4_decrypt_keys()

void rdp_free_rc4_decrypt_keys ( rdpRdp *  rdp)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ rdp_free_rc4_encrypt_keys()

void rdp_free_rc4_encrypt_keys ( rdpRdp *  rdp)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ rdp_get_io_callback_context()

FREERDP_LOCAL void* rdp_get_io_callback_context ( rdpRdp *  rdp)
Here is the caller graph for this function:

◆ rdp_get_io_callbacks()

FREERDP_LOCAL const rdpTransportIo* rdp_get_io_callbacks ( rdpRdp *  rdp)
Here is the caller graph for this function:

◆ rdp_io_callback_set_event()

FREERDP_LOCAL BOOL rdp_io_callback_set_event ( rdpRdp *  rdp,
BOOL  reset 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ rdp_log_build_warnings()

void rdp_log_build_warnings ( rdpRdp *  rdp)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ rdp_message_channel_pdu_init()

FREERDP_LOCAL wStream* rdp_message_channel_pdu_init ( rdpRdp *  rdp)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ rdp_new()

FREERDP_LOCAL rdpRdp* rdp_new ( rdpContext *  context)

Instantiate new RDP module.

Returns
new RDP module
Here is the call graph for this function:
Here is the caller graph for this function:

◆ rdp_read_header()

FREERDP_LOCAL BOOL rdp_read_header ( rdpRdp *  rdp,
wStream s,
UINT16 length,
UINT16 channelId 
)

Read an RDP packet header.

Parameters
rdprdp module
sstream
lengthRDP packet length
channelIdchannel id
Returns
TRUE for success, FALSE otherwise

Some servers like Windows Server 2008 R2 do not send the error info pdu when the user logs off like they should. Map DisconnectProviderUltimatum to a ERRINFO_LOGOFF_BY_USER when the errinfo code is ERRINFO_SUCCESS.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ rdp_read_security_header()

FREERDP_LOCAL BOOL rdp_read_security_header ( rdpRdp *  rdp,
wStream s,
UINT16 flags,
UINT16 length 
)

Read RDP Security Header. msdn{cc240579}.

Parameters
sstream
flagssecurity flags
Returns
TRUE for success, FALSE otherwise
Here is the call graph for this function:
Here is the caller graph for this function:

◆ rdp_read_share_control_header()

FREERDP_LOCAL BOOL rdp_read_share_control_header ( rdpRdp *  rdp,
wStream s,
UINT16 tpktLength,
UINT16 remainingLength,
UINT16 type,
UINT16 channel_id 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ rdp_read_share_data_header()

FREERDP_LOCAL BOOL rdp_read_share_data_header ( rdpRdp *  rdp,
wStream s,
UINT16 length,
BYTE type,
UINT32 *  share_id,
BYTE compressed_type,
UINT16 compressed_len 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ rdp_recv_callback()

FREERDP_LOCAL state_run_t rdp_recv_callback ( rdpTransport *  transport,
wStream s,
void *  extra 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ rdp_recv_data_pdu()

FREERDP_LOCAL state_run_t rdp_recv_data_pdu ( rdpRdp *  rdp,
wStream s 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ rdp_recv_message_channel_pdu()

FREERDP_LOCAL state_run_t rdp_recv_message_channel_pdu ( rdpRdp *  rdp,
wStream s,
UINT16  securityFlags 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ rdp_recv_out_of_sequence_pdu()

FREERDP_LOCAL state_run_t rdp_recv_out_of_sequence_pdu ( rdpRdp *  rdp,
wStream s,
UINT16  pduType,
UINT16  length 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ rdp_reset()

FREERDP_LOCAL BOOL rdp_reset ( rdpRdp *  rdp)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ rdp_reset_rc4_decrypt_keys()

BOOL rdp_reset_rc4_decrypt_keys ( rdpRdp *  rdp)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ rdp_reset_rc4_encrypt_keys()

BOOL rdp_reset_rc4_encrypt_keys ( rdpRdp *  rdp)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ rdp_reset_runtime_settings()

BOOL rdp_reset_runtime_settings ( rdpRdp *  rdp)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ rdp_security_flag_string()

const char* rdp_security_flag_string ( UINT32  securityFlags,
char *  buffer,
size_t  size 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ rdp_send()

FREERDP_LOCAL BOOL rdp_send ( rdpRdp *  rdp,
wStream s,
UINT16  channel_id 
)

Send an RDP packet.

Parameters
rdpRDP module
sstream
channel_idchannel id
Here is the call graph for this function:
Here is the caller graph for this function:

◆ rdp_send_channel_data()

FREERDP_LOCAL BOOL rdp_send_channel_data ( rdpRdp *  rdp,
UINT16  channelId,
const BYTE data,
size_t  size 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ rdp_send_data_pdu()

FREERDP_LOCAL BOOL rdp_send_data_pdu ( rdpRdp *  rdp,
wStream s,
BYTE  type,
UINT16  channel_id 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ rdp_send_error_info()

BOOL rdp_send_error_info ( rdpRdp *  rdp)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ rdp_send_message_channel_pdu()

FREERDP_LOCAL BOOL rdp_send_message_channel_pdu ( rdpRdp *  rdp,
wStream s,
UINT16  sec_flags 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ rdp_send_pdu()

FREERDP_LOCAL BOOL rdp_send_pdu ( rdpRdp *  rdp,
wStream s,
UINT16  type,
UINT16  channel_id 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ rdp_send_stream_init()

FREERDP_LOCAL wStream* rdp_send_stream_init ( rdpRdp *  rdp)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ rdp_send_stream_pdu_init()

FREERDP_LOCAL wStream* rdp_send_stream_pdu_init ( rdpRdp *  rdp)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ rdp_set_backup_settings()

BOOL rdp_set_backup_settings ( rdpRdp *  rdp)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ rdp_set_error_info()

BOOL rdp_set_error_info ( rdpRdp *  rdp,
UINT32  errorInfo 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ rdp_set_io_callback_context()

FREERDP_LOCAL BOOL rdp_set_io_callback_context ( rdpRdp *  rdp,
void *  usercontext 
)
Here is the caller graph for this function:

◆ rdp_set_io_callbacks()

FREERDP_LOCAL BOOL rdp_set_io_callbacks ( rdpRdp *  rdp,
const rdpTransportIo *  io_callbacks 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ rdp_write_header()

FREERDP_LOCAL BOOL rdp_write_header ( rdpRdp *  rdp,
wStream s,
UINT16  length,
UINT16  channelId 
)

Write an RDP packet header.

Parameters
rdprdp module
sstream
lengthRDP packet length
channelIdchannel id
Returns
TRUE for success, FALSE otherwise
Here is the call graph for this function:
Here is the caller graph for this function:

◆ rdp_write_security_header()

FREERDP_LOCAL BOOL rdp_write_security_header ( rdpRdp *  rdp,
wStream s,
UINT16  flags 
)

Write RDP Security Header. msdn{cc240579}

Parameters
sstream
flagssecurity flags
Returns
TRUE for success, FALSE otherwise
Here is the call graph for this function:
Here is the caller graph for this function: