21#ifndef FREERDP_CHANNELS_H
22#define FREERDP_CHANNELS_H
25#include <winpr/wtsapi.h>
27#include <freerdp/api.h>
28#include <freerdp/types.h>
29#include <freerdp/settings.h>
39 char channelName[CHANNEL_NAME_LEN + 1];
46 uint64_t fragmentsOut;
60 typedef BOOL (*freerdp_channel_handle_fkt_t)(rdpContext* context,
void* userdata);
80 WINPR_ATTR_MALLOC(freerdp_channel_client_stats_free, 1)
84 FREERDP_API
int freerdp_channels_client_load(rdpChannels* channels, rdpSettings* settings,
85 PVIRTUALCHANNELENTRY entry,
void* data);
88 FREERDP_API
int freerdp_channels_client_load_ex(rdpChannels* channels, rdpSettings* settings,
89 PVIRTUALCHANNELENTRYEX entryEx,
void* data);
92 FREERDP_API
int freerdp_channels_load_plugin(rdpChannels* channels, rdpSettings* settings,
93 const
char* name,
void* data);
94#if defined(WITH_FREERDP_DEPRECATED)
95 WINPR_DEPRECATED_VAR(
"Use freerdp_channels_get_event_handle",
96 WINPR_ATTR_NODISCARD FREERDP_API BOOL freerdp_channels_get_fds(
97 rdpChannels* channels, freerdp* instance,
void** read_fds,
98 int* read_count,
void** write_fds,
int* write_count));
101 FREERDP_API BOOL freerdp_channels_check_fds(rdpChannels* channels, freerdp* instance);
104 FREERDP_API
void* freerdp_channels_get_static_channel_interface(rdpChannels* channels,
128 FREERDP_API BOOL freerdp_client_channel_register(rdpChannels* channels, HANDLE handle,
129 freerdp_channel_handle_fkt_t fkt,
140 FREERDP_API BOOL freerdp_client_channel_unregister(rdpChannels* channels, HANDLE handle);
143 FREERDP_API HANDLE freerdp_channels_get_event_handle(freerdp* instance);
146 FREERDP_API
int freerdp_channels_process_pending_messages(freerdp* instance);
149 FREERDP_API BOOL freerdp_channels_data(freerdp* instance, UINT16 channelId,
const BYTE* data,
150 size_t dataSize, UINT32 flags,
size_t totalSize);
153 FREERDP_API UINT16 freerdp_channels_get_id_by_name(freerdp* instance,
const char* channel_name);
156 FREERDP_API
const char* freerdp_channels_get_name_by_id(freerdp* instance, UINT16 channelId);