FreeRDP
mcs.h File Reference
#include "transport.h"
#include <freerdp/crypto/ber.h>
#include <freerdp/api.h>
#include <freerdp/types.h>
#include <winpr/stream.h>
#include <winpr/wtsapi.h>
This graph shows which files directly or indirectly include this file:

Data Structures

struct  DomainParameters
 
struct  rdpMcsChannel
 
struct  rdpMcs
 

Macros

#define MCS_SEND_DATA_HEADER_MAX_LENGTH   8
 
#define MCS_TYPE_CONNECT_INITIAL   0x65
 
#define MCS_TYPE_CONNECT_RESPONSE   0x66
 

Enumerations

enum  MCS_Result {
  MCS_Result_successful = 0 , MCS_Result_domain_merging = 1 , MCS_Result_domain_not_hierarchical = 2 , MCS_Result_no_such_channel = 3 ,
  MCS_Result_no_such_domain = 4 , MCS_Result_no_such_user = 5 , MCS_Result_not_admitted = 6 , MCS_Result_other_user_id = 7 ,
  MCS_Result_parameters_unacceptable = 8 , MCS_Result_token_not_available = 9 , MCS_Result_token_not_possessed = 10 , MCS_Result_too_many_channels = 11 ,
  MCS_Result_too_many_tokens = 12 , MCS_Result_too_many_users = 13 , MCS_Result_unspecified_failure = 14 , MCS_Result_user_rejected = 15 ,
  MCS_Result_enum_length = 16
}
 
enum  DomainMCSPDU {
  DomainMCSPDU_invalid = -1 , DomainMCSPDU_PlumbDomainIndication = 0 , DomainMCSPDU_ErectDomainRequest = 1 , DomainMCSPDU_MergeChannelsRequest = 2 ,
  DomainMCSPDU_MergeChannelsConfirm = 3 , DomainMCSPDU_PurgeChannelsIndication = 4 , DomainMCSPDU_MergeTokensRequest = 5 , DomainMCSPDU_MergeTokensConfirm = 6 ,
  DomainMCSPDU_PurgeTokensIndication = 7 , DomainMCSPDU_DisconnectProviderUltimatum = 8 , DomainMCSPDU_RejectMCSPDUUltimatum = 9 , DomainMCSPDU_AttachUserRequest = 10 ,
  DomainMCSPDU_AttachUserConfirm = 11 , DomainMCSPDU_DetachUserRequest = 12 , DomainMCSPDU_DetachUserIndication = 13 , DomainMCSPDU_ChannelJoinRequest = 14 ,
  DomainMCSPDU_ChannelJoinConfirm = 15 , DomainMCSPDU_ChannelLeaveRequest = 16 , DomainMCSPDU_ChannelConveneRequest = 17 , DomainMCSPDU_ChannelConveneConfirm = 18 ,
  DomainMCSPDU_ChannelDisbandRequest = 19 , DomainMCSPDU_ChannelDisbandIndication = 20 , DomainMCSPDU_ChannelAdmitRequest = 21 , DomainMCSPDU_ChannelAdmitIndication = 22 ,
  DomainMCSPDU_ChannelExpelRequest = 23 , DomainMCSPDU_ChannelExpelIndication = 24 , DomainMCSPDU_SendDataRequest = 25 , DomainMCSPDU_SendDataIndication = 26 ,
  DomainMCSPDU_UniformSendDataRequest = 27 , DomainMCSPDU_UniformSendDataIndication = 28 , DomainMCSPDU_TokenGrabRequest = 29 , DomainMCSPDU_TokenGrabConfirm = 30 ,
  DomainMCSPDU_TokenInhibitRequest = 31 , DomainMCSPDU_TokenInhibitConfirm = 32 , DomainMCSPDU_TokenGiveRequest = 33 , DomainMCSPDU_TokenGiveIndication = 34 ,
  DomainMCSPDU_TokenGiveResponse = 35 , DomainMCSPDU_TokenGiveConfirm = 36 , DomainMCSPDU_TokenPleaseRequest = 37 , DomainMCSPDU_TokenPleaseConfirm = 38 ,
  DomainMCSPDU_TokenReleaseRequest = 39 , DomainMCSPDU_TokenReleaseConfirm = 40 , DomainMCSPDU_TokenTestRequest = 41 , DomainMCSPDU_TokenTestConfirm = 42 ,
  DomainMCSPDU_enum_length = 43
}
 

Functions

const char * mcs_domain_pdu_string (DomainMCSPDU pdu)
 
BOOL mcs_server_apply_to_settings (const rdpMcs *msc, rdpSettings *settings)
 
FREERDP_LOCAL BOOL mcs_recv_connect_initial (rdpMcs *mcs, wStream *s)
 
FREERDP_LOCAL BOOL mcs_recv_connect_response (rdpMcs *mcs, wStream *s)
 
FREERDP_LOCAL BOOL mcs_send_connect_response (rdpMcs *mcs)
 
FREERDP_LOCAL BOOL mcs_recv_erect_domain_request (rdpMcs *mcs, wStream *s)
 
FREERDP_LOCAL BOOL mcs_send_erect_domain_request (rdpMcs *mcs)
 
FREERDP_LOCAL BOOL mcs_recv_attach_user_request (rdpMcs *mcs, wStream *s)
 
FREERDP_LOCAL BOOL mcs_send_attach_user_request (rdpMcs *mcs)
 
FREERDP_LOCAL BOOL mcs_recv_attach_user_confirm (rdpMcs *mcs, wStream *s)
 
FREERDP_LOCAL BOOL mcs_send_attach_user_confirm (rdpMcs *mcs)
 
FREERDP_LOCAL BOOL mcs_recv_channel_join_request (rdpMcs *mcs, const rdpSettings *settings, wStream *s, UINT16 *channelId)
 
FREERDP_LOCAL BOOL mcs_send_channel_join_request (rdpMcs *mcs, UINT16 channelId)
 
FREERDP_LOCAL BOOL mcs_recv_channel_join_confirm (rdpMcs *mcs, wStream *s, UINT16 *channelId)
 
FREERDP_LOCAL BOOL mcs_send_channel_join_confirm (rdpMcs *mcs, UINT16 channelId)
 
FREERDP_LOCAL BOOL mcs_recv_disconnect_provider_ultimatum (rdpMcs *mcs, wStream *s, int *reason)
 
FREERDP_LOCAL BOOL mcs_send_disconnect_provider_ultimatum (rdpMcs *mcs)
 
FREERDP_LOCAL BOOL mcs_write_domain_mcspdu_header (wStream *s, DomainMCSPDU domainMCSPDU, UINT16 length, BYTE options)
 
FREERDP_LOCAL BOOL mcs_client_begin (rdpMcs *mcs)
 
FREERDP_LOCAL void mcs_free (rdpMcs *mcs)
 
FREERDP_LOCAL rdpMcs * mcs_new (rdpTransport *transport)
 

Macro Definition Documentation

◆ MCS_SEND_DATA_HEADER_MAX_LENGTH

#define MCS_SEND_DATA_HEADER_MAX_LENGTH   8

◆ MCS_TYPE_CONNECT_INITIAL

#define MCS_TYPE_CONNECT_INITIAL   0x65

◆ MCS_TYPE_CONNECT_RESPONSE

#define MCS_TYPE_CONNECT_RESPONSE   0x66

Enumeration Type Documentation

◆ DomainMCSPDU

Enumerator
DomainMCSPDU_invalid 
DomainMCSPDU_PlumbDomainIndication 
DomainMCSPDU_ErectDomainRequest 
DomainMCSPDU_MergeChannelsRequest 
DomainMCSPDU_MergeChannelsConfirm 
DomainMCSPDU_PurgeChannelsIndication 
DomainMCSPDU_MergeTokensRequest 
DomainMCSPDU_MergeTokensConfirm 
DomainMCSPDU_PurgeTokensIndication 
DomainMCSPDU_DisconnectProviderUltimatum 
DomainMCSPDU_RejectMCSPDUUltimatum 
DomainMCSPDU_AttachUserRequest 
DomainMCSPDU_AttachUserConfirm 
DomainMCSPDU_DetachUserRequest 
DomainMCSPDU_DetachUserIndication 
DomainMCSPDU_ChannelJoinRequest 
DomainMCSPDU_ChannelJoinConfirm 
DomainMCSPDU_ChannelLeaveRequest 
DomainMCSPDU_ChannelConveneRequest 
DomainMCSPDU_ChannelConveneConfirm 
DomainMCSPDU_ChannelDisbandRequest 
DomainMCSPDU_ChannelDisbandIndication 
DomainMCSPDU_ChannelAdmitRequest 
DomainMCSPDU_ChannelAdmitIndication 
DomainMCSPDU_ChannelExpelRequest 
DomainMCSPDU_ChannelExpelIndication 
DomainMCSPDU_SendDataRequest 
DomainMCSPDU_SendDataIndication 
DomainMCSPDU_UniformSendDataRequest 
DomainMCSPDU_UniformSendDataIndication 
DomainMCSPDU_TokenGrabRequest 
DomainMCSPDU_TokenGrabConfirm 
DomainMCSPDU_TokenInhibitRequest 
DomainMCSPDU_TokenInhibitConfirm 
DomainMCSPDU_TokenGiveRequest 
DomainMCSPDU_TokenGiveIndication 
DomainMCSPDU_TokenGiveResponse 
DomainMCSPDU_TokenGiveConfirm 
DomainMCSPDU_TokenPleaseRequest 
DomainMCSPDU_TokenPleaseConfirm 
DomainMCSPDU_TokenReleaseRequest 
DomainMCSPDU_TokenReleaseConfirm 
DomainMCSPDU_TokenTestRequest 
DomainMCSPDU_TokenTestConfirm 
DomainMCSPDU_enum_length 

◆ MCS_Result

enum MCS_Result
Enumerator
MCS_Result_successful 
MCS_Result_domain_merging 
MCS_Result_domain_not_hierarchical 
MCS_Result_no_such_channel 
MCS_Result_no_such_domain 
MCS_Result_no_such_user 
MCS_Result_not_admitted 
MCS_Result_other_user_id 
MCS_Result_parameters_unacceptable 
MCS_Result_token_not_available 
MCS_Result_token_not_possessed 
MCS_Result_too_many_channels 
MCS_Result_too_many_tokens 
MCS_Result_too_many_users 
MCS_Result_unspecified_failure 
MCS_Result_user_rejected 
MCS_Result_enum_length 

Function Documentation

◆ mcs_client_begin()

FREERDP_LOCAL BOOL mcs_client_begin ( rdpMcs *  mcs)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ mcs_domain_pdu_string()

const char* mcs_domain_pdu_string ( DomainMCSPDU  pdu)
Here is the caller graph for this function:

◆ mcs_free()

FREERDP_LOCAL void mcs_free ( rdpMcs *  mcs)

Free MCS module.

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

◆ mcs_new()

FREERDP_LOCAL rdpMcs* mcs_new ( rdpTransport *  transport)

Instantiate new MCS module.

Parameters
transporttransport
Returns
new MCS module
Here is the call graph for this function:
Here is the caller graph for this function:

◆ mcs_recv_attach_user_confirm()

FREERDP_LOCAL BOOL mcs_recv_attach_user_confirm ( rdpMcs *  mcs,
wStream s 
)

Read MCS Attach User Confirm. msdn{cc240525}

Parameters
mcsmcs module
Here is the call graph for this function:
Here is the caller graph for this function:

◆ mcs_recv_attach_user_request()

FREERDP_LOCAL BOOL mcs_recv_attach_user_request ( rdpMcs *  mcs,
wStream s 
)

Read MCS Attach User Request. msdn{cc240524}

Parameters
mcsmcs module
sstream
Here is the call graph for this function:
Here is the caller graph for this function:

◆ mcs_recv_channel_join_confirm()

FREERDP_LOCAL BOOL mcs_recv_channel_join_confirm ( rdpMcs *  mcs,
wStream s,
UINT16 channelId 
)

Read MCS Channel Join Confirm. msdn{cc240527}

Parameters
mcsmcs module
Here is the call graph for this function:
Here is the caller graph for this function:

◆ mcs_recv_channel_join_request()

FREERDP_LOCAL BOOL mcs_recv_channel_join_request ( rdpMcs *  mcs,
const rdpSettings *  settings,
wStream s,
UINT16 channelId 
)

Read MCS Channel Join Request. msdn{cc240526}

Parameters
mcsmcs module
sstream
Here is the call graph for this function:
Here is the caller graph for this function:

◆ mcs_recv_connect_initial()

FREERDP_LOCAL BOOL mcs_recv_connect_initial ( rdpMcs *  mcs,
wStream s 
)

Read an MCS Connect Initial PDU. msdn{cc240508}

Parameters
mcsMCS module
sstream
Here is the call graph for this function:
Here is the caller graph for this function:

◆ mcs_recv_connect_response()

FREERDP_LOCAL BOOL mcs_recv_connect_response ( rdpMcs *  mcs,
wStream s 
)

Read MCS Connect Response. msdn{cc240501}

Parameters
mcsmcs module
Here is the call graph for this function:
Here is the caller graph for this function:

◆ mcs_recv_disconnect_provider_ultimatum()

FREERDP_LOCAL BOOL mcs_recv_disconnect_provider_ultimatum ( rdpMcs *  mcs,
wStream s,
int *  reason 
)

Receive MCS Disconnect Provider Ultimatum PDU.

Parameters
mcsmcs module
Here is the call graph for this function:
Here is the caller graph for this function:

◆ mcs_recv_erect_domain_request()

FREERDP_LOCAL BOOL mcs_recv_erect_domain_request ( rdpMcs *  mcs,
wStream s 
)

Read MCS Erect Domain Request. msdn{cc240523}

Parameters
mcsMCS module to use
sstream
Here is the call graph for this function:
Here is the caller graph for this function:

◆ mcs_send_attach_user_confirm()

FREERDP_LOCAL BOOL mcs_send_attach_user_confirm ( rdpMcs *  mcs)

Send MCS Attach User Confirm. msdn{cc240525}

Parameters
mcsmcs module
Here is the call graph for this function:
Here is the caller graph for this function:

◆ mcs_send_attach_user_request()

FREERDP_LOCAL BOOL mcs_send_attach_user_request ( rdpMcs *  mcs)

Send MCS Attach User Request. msdn{cc240524}

Parameters
mcsmcs module
Here is the call graph for this function:
Here is the caller graph for this function:

◆ mcs_send_channel_join_confirm()

FREERDP_LOCAL BOOL mcs_send_channel_join_confirm ( rdpMcs *  mcs,
UINT16  channelId 
)

Send MCS Channel Join Confirm. msdn{cc240527}

Parameters
mcsmcs module
Here is the call graph for this function:
Here is the caller graph for this function:

◆ mcs_send_channel_join_request()

FREERDP_LOCAL BOOL mcs_send_channel_join_request ( rdpMcs *  mcs,
UINT16  channelId 
)

Send MCS Channel Join Request. msdn{cc240526}

Parameters
mcsmcs module
channelIdchannel id
Returns
TRUE for success, FALSE otherwise
Here is the call graph for this function:
Here is the caller graph for this function:

◆ mcs_send_connect_response()

FREERDP_LOCAL BOOL mcs_send_connect_response ( rdpMcs *  mcs)

Send MCS Connect Response. msdn{cc240501}

Parameters
mcsmcs module
Here is the call graph for this function:
Here is the caller graph for this function:

◆ mcs_send_disconnect_provider_ultimatum()

FREERDP_LOCAL BOOL mcs_send_disconnect_provider_ultimatum ( rdpMcs *  mcs)

Send MCS Disconnect Provider Ultimatum PDU.

Parameters
mcsmcs module
Here is the call graph for this function:
Here is the caller graph for this function:

◆ mcs_send_erect_domain_request()

FREERDP_LOCAL BOOL mcs_send_erect_domain_request ( rdpMcs *  mcs)

Send MCS Erect Domain Request. msdn{cc240523}

Parameters
mcsMCS module to use
Here is the call graph for this function:
Here is the caller graph for this function:

◆ mcs_server_apply_to_settings()

BOOL mcs_server_apply_to_settings ( const rdpMcs *  msc,
rdpSettings *  settings 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ mcs_write_domain_mcspdu_header()

FREERDP_LOCAL BOOL mcs_write_domain_mcspdu_header ( wStream s,
DomainMCSPDU  domainMCSPDU,
UINT16  length,
BYTE  options 
)

Write a DomainMCSPDU header.

Parameters
sstream
domainMCSPDUDomainMCSPDU type
lengthTPKT length
Here is the call graph for this function:
Here is the caller graph for this function: