FreeRDP
Loading...
Searching...
No Matches
include/freerdp/channels/channels.h
1
21#ifndef FREERDP_CHANNELS_H
22#define FREERDP_CHANNELS_H
23
24#include <winpr/crt.h>
25#include <winpr/wtsapi.h>
26
27#include <freerdp/api.h>
28#include <freerdp/types.h>
29#include <freerdp/settings.h>
30
31#ifdef __cplusplus
32extern "C"
33{
34#endif
35
37 typedef struct
38 {
39 char channelName[CHANNEL_NAME_LEN + 1];
40 uint32_t channelId;
41
42 uint64_t bytesIn;
43 uint64_t bytesOut;
44
45 uint64_t fragmentsIn;
46 uint64_t fragmentsOut;
47
48 uint64_t packetsIn;
49 uint64_t packetsOut;
51
53 typedef struct
54 {
55 size_t count;
58
60 typedef BOOL (*freerdp_channel_handle_fkt_t)(rdpContext* context, void* userdata);
61
69 FREERDP_API void freerdp_channel_client_stats_free(StaticClientChannelStats* stats);
70
80 WINPR_ATTR_MALLOC(freerdp_channel_client_stats_free, 1)
81 FREERDP_API StaticClientChannelStats* freerdp_channels_client_stats(rdpChannels* channels);
82
83 WINPR_ATTR_NODISCARD
84 FREERDP_API int freerdp_channels_client_load(rdpChannels* channels, rdpSettings* settings,
85 PVIRTUALCHANNELENTRY entry, void* data);
86
87 WINPR_ATTR_NODISCARD
88 FREERDP_API int freerdp_channels_client_load_ex(rdpChannels* channels, rdpSettings* settings,
89 PVIRTUALCHANNELENTRYEX entryEx, void* data);
90
91 WINPR_ATTR_NODISCARD
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));
99#endif
100
101 FREERDP_API BOOL freerdp_channels_check_fds(rdpChannels* channels, freerdp* instance);
102
103 WINPR_ATTR_NODISCARD
104 FREERDP_API void* freerdp_channels_get_static_channel_interface(rdpChannels* channels,
105 const char* name);
106
127 WINPR_ATTR_NODISCARD
128 FREERDP_API BOOL freerdp_client_channel_register(rdpChannels* channels, HANDLE handle,
129 freerdp_channel_handle_fkt_t fkt,
130 void* userdata);
131
140 FREERDP_API BOOL freerdp_client_channel_unregister(rdpChannels* channels, HANDLE handle);
141
142 WINPR_ATTR_NODISCARD
143 FREERDP_API HANDLE freerdp_channels_get_event_handle(freerdp* instance);
144
145 WINPR_ATTR_NODISCARD
146 FREERDP_API int freerdp_channels_process_pending_messages(freerdp* instance);
147
148 WINPR_ATTR_NODISCARD
149 FREERDP_API BOOL freerdp_channels_data(freerdp* instance, UINT16 channelId, const BYTE* data,
150 size_t dataSize, UINT32 flags, size_t totalSize);
151
152 WINPR_ATTR_NODISCARD
153 FREERDP_API UINT16 freerdp_channels_get_id_by_name(freerdp* instance, const char* channel_name);
154
155 WINPR_ATTR_NODISCARD
156 FREERDP_API const char* freerdp_channels_get_name_by_id(freerdp* instance, UINT16 channelId);
157
158 WINPR_ATTR_NODISCARD
159 FREERDP_API const WtsApiFunctionTable* FreeRDP_InitWtsApi(void);
160
161#ifdef __cplusplus
162}
163#endif
164
165#endif /* FREERDP_CHANNELS_H */