# Application programming interface, reference ## emRasSrvStart ### [EC_T_DWORD](toc_api.html.md#_CPPv410EC_T_DWORD) EC_NAMESPACE::emRasSrvStart(const [EC_T_RAS_SERVER_PARMS](#_CPPv421EC_T_RAS_SERVER_PARMS) \*pParms, [EC_T_PVOID](toc_api.html.md#_CPPv410EC_T_PVOID) \*ppHandle) Starts the RAS Server. * **Parameters:** * **pParms** – [in] Server start-up parameters * **ppHandle** – [out] Handle to opened instance, used for ctrl access * **Returns:** [EC_E_NOERROR](error-codes_generic.html.md#d3/d2f/group___e_c___e_r_r_o_r___c_o_d_e_s___g_e_n_e_r_i_c_1ga8c8419c32e88e73d940a4501fe427116) or error code ### struct EC_T_RAS_SERVER_PARMS ### Public Members ### [EC_T_DWORD](toc_api.html.md#_CPPv410EC_T_DWORD) dwSignature [in] Set to EC_RAS_SERVER_SIGNATURE ### [EC_T_DWORD](toc_api.html.md#_CPPv410EC_T_DWORD) dwSize [in] Set to sizeof(EC_T_RAS_SERVER_PARMS) ### [EC_T_LOG_PARMS](api_general_functions.html.md#_CPPv414EC_T_LOG_PARMS) LogParms [in] Logging parameters ### [EC_T_IPADDR](#_CPPv411EC_T_IPADDR) oAddr [in] Remote Access Server (RAS) listen IP address ### [EC_T_WORD](toc_api.html.md#_CPPv49EC_T_WORD) wPort [in] Remote Access Server (RAS) listen port ### [EC_T_WORD](toc_api.html.md#_CPPv49EC_T_WORD) wMaxClientCnt [in] Max. clients in parallel (0: unlimited) ### [EC_T_DWORD](toc_api.html.md#_CPPv410EC_T_DWORD) dwCycleTime [in] Cycle Time of RAS Network access (acceptor, worker) ### [EC_T_DWORD](toc_api.html.md#_CPPv410EC_T_DWORD) dwCommunicationTimeout [in] Timeout [ms] before automatically closing connection ### EC_T_CPUSET oAcceptorThreadCpuAffinityMask [in] Acceptor Thread CPU affinity mask ### [EC_T_DWORD](toc_api.html.md#_CPPv410EC_T_DWORD) dwAcceptorThreadPrio [in] Acceptor Thread Priority ### [EC_T_DWORD](toc_api.html.md#_CPPv410EC_T_DWORD) dwAcceptorThreadStackSize [in] Acceptor Thread Stack Size ### EC_T_CPUSET oClientWorkerThreadCpuAffinityMask [in] Client Worker Thread CPU affinity mask ### [EC_T_DWORD](toc_api.html.md#_CPPv410EC_T_DWORD) dwClientWorkerThreadPrio [in] Client Worker Thread Priority ### [EC_T_DWORD](toc_api.html.md#_CPPv410EC_T_DWORD) dwClientWorkerThreadStackSize [in] Client Worker Thread Stack Size ### [EC_T_DWORD](toc_api.html.md#_CPPv410EC_T_DWORD) dwMaxQueuedNotificationCnt [in] Amount of concurrently queue able Notifications ### [EC_T_DWORD](toc_api.html.md#_CPPv410EC_T_DWORD) dwMaxParallelMbxTferCnt [in] Amount of concurrent active mailbox transfers ### [EC_PF_NOTIFY](api_general_functions.html.md#_CPPv412EC_PF_NOTIFY) pfnRasNotify [in] Function pointer called to notify error and status information generated by Remote API Layer ### EC_T_VOID \*pvRasNotifyCtxt [in] Notification context returned while calling pfNotification ### [EC_T_DWORD](toc_api.html.md#_CPPv410EC_T_DWORD) dwCycErrInterval [in] Interval which allows cyclic Notifications ### [EC_T_DWORD](toc_api.html.md#_CPPv410EC_T_DWORD) dwMaxQueuedNotificationSize [in] Size of concurrent active mailbox transfers ### EC_PF_CHECK_TOKEN pfCheckToken [in] Function pointer called to check token ### EC_T_VOID \*pvCheckTokenContext [in] Check token context ### [EC_T_BYTE](toc_api.html.md#_CPPv49EC_T_BYTE) \*pbyTlsCert [in] TLS certificate filename string ### [EC_T_DWORD](toc_api.html.md#_CPPv410EC_T_DWORD) dwTlsCertSize [in] Size of TLS certeficate ### EC_T_TLS_CERT_TYPE eTlsCertType [in] TLS certeficate type ### [EC_T_BYTE](toc_api.html.md#_CPPv49EC_T_BYTE) \*pbyTlsPrivKey [in] TLS private key filename string ### [EC_T_DWORD](toc_api.html.md#_CPPv410EC_T_DWORD) dwTlsPrivKeySize [in] Size of TLS private key ### EC_T_TLS_PRIVKEY_TYPE eTlsPrivKeyType [in] TLS certeficate type ### union EC_T_IPADDR *#include * ### Public Members ### [EC_T_INNER_IPADDR](#_CPPv417EC_T_INNER_IPADDR) sAddr IPv4 address (endianness independent) ### [EC_T_DWORD](toc_api.html.md#_CPPv410EC_T_DWORD) dwAddr Reserved, use EC_T_IPADDR::sAddr.by instead. OS-Layer socket API calls (SOCKADDR_IN::sin_addr). ### struct EC_T_INNER_IPADDR ### Public Members ### [EC_T_BYTE](toc_api.html.md#_CPPv49EC_T_BYTE) by[4] IPv4 address (endianness independent) ## emRasSrvStop ### [EC_T_DWORD](toc_api.html.md#_CPPv410EC_T_DWORD) EC_NAMESPACE::emRasSrvStop([EC_T_PVOID](toc_api.html.md#_CPPv410EC_T_PVOID) pvHandle, [EC_T_DWORD](toc_api.html.md#_CPPv410EC_T_DWORD) dwTimeout) Stops the RAS Server. * **Parameters:** * **pvHandle** – [in] Handle to previously started Server * **dwTimeout** – [in] Timeout [ms] used to shut down all spawned threads, it’s multiplied internally by the amount of threads spawned * **Returns:** [EC_E_NOERROR](error-codes_generic.html.md#d3/d2f/group___e_c___e_r_r_o_r___c_o_d_e_s___g_e_n_e_r_i_c_1ga8c8419c32e88e73d940a4501fe427116) or error code ## emRasNotify - xxx Callback function called by Remote API Server in case of state changes or error situations. ### typedef [EC_T_DWORD](toc_api.html.md#_CPPv410EC_T_DWORD) (\*[EC_PF_NOTIFY](api_general_functions.html.md#_CPPv412EC_PF_NOTIFY))([EC_T_DWORD](toc_api.html.md#_CPPv410EC_T_DWORD) dwCode, [EC_T_NOTIFYPARMS](api_notifications.html.md#_CPPv416EC_T_NOTIFYPARMS) \*pParms) ## emRasNotify - EC_RAS_NOTIFY_CONNECTION Notification about a change in the Remote API’s state. **emRasNotify - EC_T_RAS_CONNOTIFYDESC** : **Parameter** : * `pbyInBuf`: [in] Pointer to data of type EC_T_RAS_CONNOTIFYDESC * `dwInBufSize`: [in] Size of the input buffer in bytes * `pbyOutBuf`: [out] Should be set to EC_NULL * `dwOutBufSize`: [in] Should be set to 0 * `pdwNumOutData`: [out] Should be set to EC_NULL ### struct EC_T_RAS_CONNOTIFYDESC ### Public Members ### [EC_T_DWORD](toc_api.html.md#_CPPv410EC_T_DWORD) dwCause [in] Cause of state connection state change ### [EC_T_DWORD](toc_api.html.md#_CPPv410EC_T_DWORD) dwCookie [in] Unique identification cookie of connection instance ## emRasNotify - EC_RAS_NOTIFY_REGISTER Notification that a connected application registered a client to the EC-Master stack. **emRasNotify - EC_RAS_NOTIFY_REGISTER** : **Parameter** : * `pbyInBuf`: [in] Pointer to data of type EC_T_RAS_REGNOTIFYDESC * `dwInBufSize`: [in] Size of the input buffer in bytes * `pbyOutBuf`: [out] Should be set to EC_NULL * `dwOutBufSize`: [in] Should be set to 0 * `pdwNumOutData`: [out] Should be set to EC_NULL ### struct EC_T_RAS_REGNOTIFYDESC ### Public Members ### [EC_T_DWORD](toc_api.html.md#_CPPv410EC_T_DWORD) dwCookie [in] Unique identification cookie of connection instance ### [EC_T_DWORD](toc_api.html.md#_CPPv410EC_T_DWORD) dwResult [in] Result of registration request ### [EC_T_DWORD](toc_api.html.md#_CPPv410EC_T_DWORD) dwInstanceId [in] Master Instance client registered to ### [EC_T_DWORD](toc_api.html.md#_CPPv410EC_T_DWORD) dwClientId [in] Client ID of registered client ## emRasNotify - EC_RAS_NOTIFY_UNREGISTER Notification that a connected application un-registered a client from the EC-Master stack. **emRasNotify - EC_RAS_NOTIFY_UNREGISTER** : **Parameter** : * `pbyInBuf`: [in] Pointer to data of type EC_T_RAS_REGNOTIFYDESC * `dwInBufSize`: [in] Size of the input buffer in bytes * `pbyOutBuf`: [out] Should be set to EC_NULL * `dwOutBufSize`: [in] Should be set to 0 * `pdwNumOutData`: [out] Should be set to EC_NULL #### SEE ALSO [`EC_T_RAS_REGNOTIFYDESC`](#_CPPv422EC_T_RAS_REGNOTIFYDESC) ## emRasNotify - EC_RAS_NOTIFY_MARSHALERROR Notification about an error during marshalling in Remote API Server connection layer. **emRasNotify - EC_RAS_NOTIFY_MARSHALERRORDESC** : **Parameter** : * `pbyInBuf`: [in] Pointer to data of type EC_T_RAS_MARSHALERRORDESC * `dwInBufSize`: [in] Size of the input buffer in bytes * `pbyOutBuf`: [out] Should be set to EC_NULL * `dwOutBufSize`: [in] Should be set to 0 * `pdwNumOutData`: [out] Should be set to EC_NULL ### struct EC_T_RAS_MARSHALERRORDESC ### Public Members ### [EC_T_DWORD](toc_api.html.md#_CPPv410EC_T_DWORD) dwCookie [in] Unique identification cookie of connection instance ### [EC_T_DWORD](toc_api.html.md#_CPPv410EC_T_DWORD) dwCause [in] Cause of the command marshalling error ### [EC_T_DWORD](toc_api.html.md#_CPPv410EC_T_DWORD) dwLenStatCmd [in] Length of the faulty command ### [EC_T_DWORD](toc_api.html.md#_CPPv410EC_T_DWORD) dwCommandCode [in] Command code of the faulty command ## emRasNotify - EC_RAS_NOTIFY_ACKERROR Notification about an error during creation of ack / nack packet. **emRasNotify - EC_RAS_NOTIFY_ACKERROR** : **Parameter** : * `pbyInBuf`: [in] Pointer to EC_T_DWORD containing error code * `dwInBufSize`: [in] Size of the input buffer in bytes * `pbyOutBuf`: [out] Should be set to EC_NULL * `dwOutBufSize`: [in] Should be set to 0 * `pdwNumOutData`: [out] Should be set to EC_NULL ## emRasNotify - EC_RAS_NOTIFY_NONOTIFYMEMORY Notification given when no empty buffers for notifications are available in the pre-allocated notification store. This points to a configuration error. **emRasNotify - EC_RAS_NOTIFY_NONOTIFYMEMORY** : **Parameter** : * `pbyInBuf`: [in] Pointer to EC_T_DWORD containing unique identification cookie of connection instance * `dwInBufSize`: [in] Size of the input buffer in bytes * `pbyOutBuf`: [out] Should be set to EC_NULL * `dwOutBufSize`: [in] Should be set to 0 * `pdwNumOutData`: [out] Should be set to EC_NULL ## emRasNotify - EC_RAS_NOTIFY_STDNOTIFYMEMORYSMALL Notification given when the buffer size for standard notifications available in pre-allocated notification store is too small to carry a specific notification. This points to a configuration error. **emRasNotify - EC_RAS_NOTIFY_STDNOTIFYMEMORYSMALL** : **Parameter** : * `pbyInBuf`: [in] Pointer to EC_T_DWORD containing unique identification cookie of connection instance * `dwInBufSize`: [in] Size of the input buffer in bytes * `pbyOutBuf`: [out] Should be set to EC_NULL * `dwOutBufSize`: [in] Should be set to 0 * `pdwNumOutData`: [out] Should be set to EC_NULL ## emRasNotify - EC_RAS_NOTIFY_MBXNOTIFYMEMORYSMALL Notification given, when the buffer size for Mailbox notifications available in pre-allocated notification store is too small to carry a specific notification. This points to a configuration error. This is a serious error. If this error is given, Mailbox Transfer objects may have become out of sync and therefore no longer usable. Mailbox notifications should be dimensioned correctly, see `emRasSrvStart()`. **emRasNotify - EC_RAS_NOTIFY_MBXNOTIFYMEMORYSMALL** : **Parameter** : * `pbyInBuf`: [in] Pointer to EC_T_DWORD containing unique identification cookie of connection instance * `dwInBufSize`: [in] Size of the input buffer in bytes * `pbyOutBuf`: [out] Should be set to EC_NULL * `dwOutBufSize`: [in] Should be set to 0 * `pdwNumOutData`: [out] Should be set to EC_NULL