static void remdesk_virtual_channel_event_terminated(remdeskPlugin* remdesk) { MessagePipe_PostQuit(remdesk->MsgPipe, 0); WaitForSingleObject(remdesk->thread, INFINITE); MessagePipe_Free(remdesk->MsgPipe); CloseHandle(remdesk->thread); remdesk->channelEntryPoints.pVirtualChannelClose(remdesk->OpenHandle); if (remdesk->data_in) { Stream_Free(remdesk->data_in, TRUE); remdesk->data_in = NULL; } remdesk_remove_open_handle_data(remdesk->OpenHandle); remdesk_remove_init_handle_data(remdesk->InitHandle); }
static void remdesk_virtual_channel_event_terminated(remdeskPlugin* remdesk) { remdesk_remove_init_handle_data(remdesk->InitHandle); free(remdesk); }