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>
This graph shows which files directly or indirectly include this file:

Data Structures

struct  DomainParameters
 
struct  rdpMcsChannel
 
struct  rdpMcs
 

Macros

#define MCS_BASE_CHANNEL_ID   1001
 
#define MCS_GLOBAL_CHANNEL_ID   1003
 
#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_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

FREERDP_LOCAL BOOL mcs_merge_domain_parameters (DomainParameters *targetParameters, DomainParameters *minimumParameters, DomainParameters *maximumParameters, DomainParameters *pOutParameters)
 
FREERDP_LOCAL BOOL mcs_write_connect_initial (wStream *s, rdpMcs *mcs, wStream *userData)
 
FREERDP_LOCAL BOOL mcs_write_connect_response (wStream *s, rdpMcs *mcs, wStream *userData)
 
FREERDP_LOCAL BOOL mcs_recv_connect_initial (rdpMcs *mcs, wStream *s)
 
FREERDP_LOCAL BOOL mcs_send_connect_initial (rdpMcs *mcs)
 
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, 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_read_domain_mcspdu_header (wStream *s, enum DomainMCSPDU *domainMCSPDU, UINT16 *length)
 
FREERDP_LOCAL void mcs_write_domain_mcspdu_header (wStream *s, enum DomainMCSPDU domainMCSPDU, UINT16 length, BYTE options)
 
FREERDP_LOCAL BOOL mcs_client_begin (rdpMcs *mcs)
 
FREERDP_LOCAL rdpMcs * mcs_new (rdpTransport *transport)
 
FREERDP_LOCAL void mcs_free (rdpMcs *mcs)
 

Macro Definition Documentation

#define MCS_BASE_CHANNEL_ID   1001
#define MCS_GLOBAL_CHANNEL_ID   1003
#define MCS_SEND_DATA_HEADER_MAX_LENGTH   8
#define MCS_TYPE_CONNECT_INITIAL   0x65
#define MCS_TYPE_CONNECT_RESPONSE   0x66

Enumeration Type Documentation

Enumerator
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 
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

FREERDP_LOCAL BOOL mcs_client_begin ( rdpMcs *  mcs)

Here is the call graph for this function:

Here is the caller graph for this function:

FREERDP_LOCAL void mcs_free ( rdpMcs *  mcs)

Free MCS module.

Parameters
mcsMCS module to be freed

Here is the caller graph for this function:

FREERDP_LOCAL BOOL mcs_merge_domain_parameters ( DomainParameters targetParameters,
DomainParameters minimumParameters,
DomainParameters maximumParameters,
DomainParameters pOutParameters 
)

Merge MCS Domain Parameters.

Parameters
domainParameterstarget parameters
domainParametersminimum parameters
domainParametersmaximum parameters
domainParametersoutput parameters

Here is the caller graph for this function:

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:

FREERDP_LOCAL BOOL mcs_read_domain_mcspdu_header ( wStream *  s,
enum DomainMCSPDU domainMCSPDU,
UINT16 length 
)

Read a DomainMCSPDU header.

Parameters
sstream
domainMCSPDUDomainMCSPDU type
lengthTPKT length
Returns

Here is the call graph for this function:

Here is the caller graph for this function:

FREERDP_LOCAL BOOL mcs_recv_attach_user_confirm ( rdpMcs *  mcs,
wStream *  s 
)

Read MCS Attach User Confirm.
http://msdn.microsoft.com/en-us/library/cc240525/

Parameters
mcsmcs module

Here is the call graph for this function:

Here is the caller graph for this function:

FREERDP_LOCAL BOOL mcs_recv_attach_user_request ( rdpMcs *  mcs,
wStream *  s 
)

Read MCS Attach User Request.
http://msdn.microsoft.com/en-us/library/cc240524/

Parameters
mcsmcs module
sstream

Here is the call graph for this function:

Here is the caller graph for this function:

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

Read MCS Channel Join Confirm.
http://msdn.microsoft.com/en-us/library/cc240527/

Parameters
mcsmcs module

Here is the call graph for this function:

Here is the caller graph for this function:

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

Read MCS Channel Join Request.
http://msdn.microsoft.com/en-us/library/cc240526/

Parameters
mcsmcs module
sstream

Here is the call graph for this function:

Here is the caller graph for this function:

FREERDP_LOCAL BOOL mcs_recv_connect_initial ( rdpMcs *  mcs,
wStream *  s 
)

Read an MCS Connect Initial PDU.
http://msdn.microsoft.com/en-us/library/cc240508/

Parameters
mcsMCS module
sstream

Here is the call graph for this function:

Here is the caller graph for this function:

FREERDP_LOCAL BOOL mcs_recv_connect_response ( rdpMcs *  mcs,
wStream *  s 
)

Read MCS Connect Response.
http://msdn.microsoft.com/en-us/library/cc240501/

Parameters
mcsmcs module

Here is the call graph for this function:

Here is the caller graph for this function:

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:

FREERDP_LOCAL BOOL mcs_recv_erect_domain_request ( rdpMcs *  mcs,
wStream *  s 
)

Read MCS Erect Domain Request.
http://msdn.microsoft.com/en-us/library/cc240523/

Parameters
mcs
sstream

Here is the call graph for this function:

Here is the caller graph for this function:

FREERDP_LOCAL BOOL mcs_send_attach_user_confirm ( rdpMcs *  mcs)

Send MCS Attach User Confirm.
http://msdn.microsoft.com/en-us/library/cc240525/

Parameters
mcsmcs module

Here is the call graph for this function:

Here is the caller graph for this function:

FREERDP_LOCAL BOOL mcs_send_attach_user_request ( rdpMcs *  mcs)

Send MCS Attach User Request.
http://msdn.microsoft.com/en-us/library/cc240524/

Parameters
mcsmcs module

Here is the call graph for this function:

Here is the caller graph for this function:

FREERDP_LOCAL BOOL mcs_send_channel_join_confirm ( rdpMcs *  mcs,
UINT16  channelId 
)

Send MCS Channel Join Confirm.
http://msdn.microsoft.com/en-us/library/cc240527/

Parameters
mcsmcs module

Here is the call graph for this function:

Here is the caller graph for this function:

FREERDP_LOCAL BOOL mcs_send_channel_join_request ( rdpMcs *  mcs,
UINT16  channelId 
)

Send MCS Channel Join Request.
http://msdn.microsoft.com/en-us/library/cc240526/

Parameters
mcsmcs module
channel_idchannel id

Here is the call graph for this function:

Here is the caller graph for this function:

FREERDP_LOCAL BOOL mcs_send_connect_initial ( rdpMcs *  mcs)

Send MCS Connect Initial.
http://msdn.microsoft.com/en-us/library/cc240508/

Parameters
mcsmcs module

Here is the call graph for this function:

Here is the caller graph for this function:

FREERDP_LOCAL BOOL mcs_send_connect_response ( rdpMcs *  mcs)

Send MCS Connect Response.
http://msdn.microsoft.com/en-us/library/cc240501/

Parameters
mcsmcs module

Here is the call graph for this function:

Here is the caller graph for this function:

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:

FREERDP_LOCAL BOOL mcs_send_erect_domain_request ( rdpMcs *  mcs)

Send MCS Erect Domain Request.
http://msdn.microsoft.com/en-us/library/cc240523/

Parameters
mcs

Here is the call graph for this function:

Here is the caller graph for this function:

FREERDP_LOCAL BOOL mcs_write_connect_initial ( wStream *  s,
rdpMcs *  mcs,
wStream *  userData 
)

Write an MCS Connect Initial PDU.
http://msdn.microsoft.com/en-us/library/cc240508/

Parameters
sstream
mcsMCS module
user_dataGCC Conference Create Request

Here is the call graph for this function:

Here is the caller graph for this function:

FREERDP_LOCAL BOOL mcs_write_connect_response ( wStream *  s,
rdpMcs *  mcs,
wStream *  userData 
)

Write an MCS Connect Response PDU.
http://msdn.microsoft.com/en-us/library/cc240508/

Parameters
sstream
mcsMCS module
user_dataGCC Conference Create Response

Here is the call graph for this function:

Here is the caller graph for this function:

FREERDP_LOCAL void mcs_write_domain_mcspdu_header ( wStream *  s,
enum 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: