25 #ifndef FREERDP_SERVER_PROXY_MODULES_API_H
26 #define FREERDP_SERVER_PROXY_MODULES_API_H
28 #include <winpr/winpr.h>
29 #include <winpr/stream.h>
30 #include <winpr/sspi.h>
32 #include <freerdp/server/proxy/proxy_types.h>
34 #define MODULE_TAG(module) "proxy.modules." module
42 typedef struct proxy_module proxyModule;
47 typedef BOOL (*proxyHookFn)(proxyPlugin*, proxyData*,
void*);
54 typedef BOOL (*proxyFilterFn)(proxyPlugin*, proxyData*,
void*);
64 const char* description;
66 UINT64 reserved1[32 - 2];
68 BOOL (*PluginUnload)(proxyPlugin* plugin);
69 UINT64 reserved2[66 - 34];
72 proxyHookFn ClientInitConnect;
73 proxyHookFn ClientUninitConnect;
74 proxyHookFn ClientPreConnect;
75 proxyHookFn ClientPostConnect;
76 proxyHookFn ClientPostDisconnect;
77 proxyHookFn ClientX509Certificate;
78 proxyHookFn ClientLoginFailure;
79 proxyHookFn ClientEndPaint;
80 proxyHookFn ClientRedirect;
81 proxyHookFn ClientLoadChannels;
82 UINT64 reserved3[96 - 76];
84 proxyHookFn ServerPostConnect;
85 proxyHookFn ServerPeerActivate;
86 proxyHookFn ServerChannelsInit;
87 proxyHookFn ServerChannelsFree;
88 proxyHookFn ServerSessionEnd;
89 proxyHookFn ServerSessionInitialize;
90 proxyHookFn ServerSessionStarted;
92 UINT64 reserved4[128 - 103];
95 proxyFilterFn KeyboardEvent;
96 proxyFilterFn MouseEvent;
97 proxyFilterFn ClientChannelData;
98 proxyFilterFn ServerChannelData;
99 proxyFilterFn DynamicChannelCreate;
100 proxyFilterFn ServerFetchTargetAddr;
101 proxyFilterFn ServerPeerLogon;
102 proxyFilterFn ChannelCreate;
103 proxyFilterFn UnicodeEvent;
104 proxyFilterFn MouseExEvent;
111 proxyFilterFn DynChannelToIntercept;
112 proxyFilterFn DynChannelIntercept;
113 proxyFilterFn StaticChannelToIntercept;
114 UINT64 reserved5[160 - 141];
117 proxyPluginsManager* mgr;
148 UINT64 reserved[128 - 4];
151 typedef BOOL (*proxyModuleEntryPoint)(proxyPluginsManager* plugins_manager,
void* userdata);
154 #define WINPR_PACK_PUSH
155 #include <winpr/pack.h>
156 typedef struct proxy_keyboard_event_info
159 UINT16 rdp_scan_code;
162 typedef struct proxy_unicode_event_info
168 typedef struct proxy_mouse_event_info
175 typedef struct proxy_mouse_ex_event_info
185 const char* channel_name;
198 char* target_address;
205 ProxyFetchTargetMethod fetch_method;
208 typedef struct server_peer_logon
210 const SEC_WINNT_AUTH_IDENTITY* identity;
214 typedef struct dyn_channel_intercept_data
224 PfChannelResult result;
227 typedef struct dyn_channel_to_intercept_data
234 #define WINPR_PACK_POP
235 #include <winpr/pack.h>
UINT64 reserved6[192 - 163]