rdpChannels* freerdp_channels_new(void) { rdpChannels* channels; channels = (rdpChannels*) malloc(sizeof(rdpChannels)); ZeroMemory(channels, sizeof(rdpChannels)); channels->MsgPipe = MessagePipe_New(); ArrayList_Add(g_ChannelsList, (void*) channels); return channels; }
static void svc_plugin_process_connected(rdpSvcPlugin* plugin, void* pData, UINT32 dataLength) { UINT32 status; status = plugin->channel_entry_points.pVirtualChannelOpen(plugin->init_handle, &plugin->open_handle, plugin->channel_def.name, svc_plugin_open_event); if (status != CHANNEL_RC_OK) { fprintf(stderr, "svc_plugin_process_connected: open failed\n"); return; } plugin->MsgPipe = MessagePipe_New(); plugin->thread = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE) svc_plugin_thread_func, (void*) plugin, 0, NULL); }
rdpChannels* freerdp_channels_new(void) { rdpChannels* channels; channels = (rdpChannels*) calloc(1, sizeof(rdpChannels)); if (!channels) return NULL; channels->MsgPipe = MessagePipe_New(); if (!g_OpenHandles) { g_OpenHandles = HashTable_New(TRUE); InitializeCriticalSectionAndSpinCount(&g_channels_lock, 4000); } return channels; }
static void remdesk_virtual_channel_event_connected(remdeskPlugin* remdesk, LPVOID pData, UINT32 dataLength) { UINT32 status; status = remdesk->channelEntryPoints.pVirtualChannelOpen(remdesk->InitHandle, &remdesk->OpenHandle, remdesk->channelDef.name, remdesk_virtual_channel_open_event); remdesk_add_open_handle_data(remdesk->OpenHandle, remdesk); if (status != CHANNEL_RC_OK) { WLog_ERR(TAG, "open failed: status: %d", status); return; } remdesk->MsgPipe = MessagePipe_New(); remdesk->thread = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE) remdesk_virtual_channel_client_thread, (void*) remdesk, 0, NULL); }
static void cliprdr_virtual_channel_event_connected(cliprdrPlugin* cliprdr, LPVOID pData, UINT32 dataLength) { UINT32 status; status = cliprdr->channelEntryPoints.pVirtualChannelOpen(cliprdr->InitHandle, &cliprdr->OpenHandle, cliprdr->channelDef.name, cliprdr_virtual_channel_open_event); cliprdr_add_open_handle_data(cliprdr->OpenHandle, cliprdr); if (status != CHANNEL_RC_OK) { WLog_ERR(TAG, "cliprdr_virtual_channel_event_connected: open failed: status: %d", status); return; } cliprdr->MsgPipe = MessagePipe_New(); cliprdr->thread = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE) cliprdr_virtual_channel_client_thread, (void*) cliprdr, 0, NULL); }
rdpChannels* freerdp_channels_new(void) { rdpChannels* channels; rdpChannelsList* channels_list; channels = (rdpChannels*) malloc(sizeof(rdpChannels)); ZeroMemory(channels, sizeof(rdpChannels)); channels->MsgPipe = MessagePipe_New(); /* Add it to the global list */ channels_list = (rdpChannelsList*) malloc(sizeof(rdpChannelsList)); ZeroMemory(channels_list, sizeof(rdpChannelsList)); channels_list->channels = channels; WaitForSingleObject(g_mutex_list, INFINITE); channels_list->next = g_channels_list; g_channels_list = channels_list; ReleaseMutex(g_mutex_list); return channels; }