FreeRDP
Loading...
Searching...
No Matches
client/drdynvc_main.h
1
22
#ifndef FREERDP_CHANNEL_DRDYNVC_CLIENT_MAIN_H
23
#define FREERDP_CHANNEL_DRDYNVC_CLIENT_MAIN_H
24
25
#include <winpr/wlog.h>
26
#include <winpr/synch.h>
27
#include <freerdp/settings.h>
28
#include <winpr/collections.h>
29
30
#include <freerdp/api.h>
31
#include <freerdp/svc.h>
32
#include <freerdp/dvc.h>
33
#include <freerdp/addin.h>
34
#include <freerdp/channels/log.h>
35
#include <freerdp/client/drdynvc.h>
36
#include <freerdp/codec/zgfx.h>
37
#include <freerdp/freerdp.h>
38
39
typedef
struct
drdynvc_plugin
drdynvcPlugin;
40
41
typedef
struct
42
{
43
IWTSVirtualChannelManager iface;
44
45
drdynvcPlugin* drdynvc;
46
47
wArrayList* plugin_names;
48
wArrayList* plugins;
49
50
wHashTable* listeners;
51
wHashTable* channelsById;
52
wStreamPool* pool;
53
}
DVCMAN
;
54
55
typedef
struct
56
{
57
IWTSListener iface;
58
59
DVCMAN
* dvcman;
60
char
* channel_name;
61
UINT32 flags;
62
IWTSListenerCallback* listener_callback;
63
}
DVCMAN_LISTENER
;
64
65
typedef
struct
66
{
67
IDRDYNVC_ENTRY_POINTS iface;
68
69
DVCMAN
* dvcman;
70
const
ADDIN_ARGV
* args;
71
rdpContext* context;
72
}
DVCMAN_ENTRY_POINTS
;
73
74
typedef
enum
75
{
76
DVC_CHANNEL_INIT,
77
DVC_CHANNEL_RUNNING,
78
DVC_CHANNEL_CLOSED
79
} DVC_CHANNEL_STATE;
80
81
typedef
struct
82
{
83
uint64_t bytesIn;
84
uint64_t bytesOut;
85
uint64_t fragmentsIn;
86
uint64_t fragmentsOut;
87
uint64_t packetsIn;
88
uint64_t packetsOut;
89
}
DVCMAN_CHANNEL_STATS
;
90
91
typedef
struct
92
{
93
IWTSVirtualChannel iface;
94
95
volatile
LONG refCounter;
96
DVC_CHANNEL_STATE state;
97
DVCMAN
* dvcman;
98
void
* pInterface;
99
UINT32 channel_id;
100
char
* channel_name;
101
IWTSVirtualChannelCallback* channel_callback;
102
103
wStream
* dvc_data;
104
UINT32 dvc_data_length;
105
ZGFX_CONTEXT* decompressor;
106
CRITICAL_SECTION
lock;
107
DVCMAN_CHANNEL_STATS
stats;
108
}
DVCMAN_CHANNEL
;
109
110
typedef
enum
111
{
112
DRDYNVC_STATE_INITIAL,
113
DRDYNVC_STATE_CAPABILITIES,
114
DRDYNVC_STATE_READY,
115
DRDYNVC_STATE_OPENING_CHANNEL,
116
DRDYNVC_STATE_SEND_RECEIVE,
117
DRDYNVC_STATE_FINAL
118
} DRDYNVC_STATE;
119
120
struct
drdynvc_plugin
121
{
122
CHANNEL_DEF
channelDef;
123
CHANNEL_ENTRY_POINTS_FREERDP_EX
channelEntryPoints;
124
125
wLog* log;
126
HANDLE thread;
127
BOOL async;
128
wStream
* data_in;
129
void
* InitHandle;
130
DWORD OpenHandle;
131
wMessageQueue* queue;
132
133
DRDYNVC_STATE state;
134
DrdynvcClientContext* context;
135
136
UINT16 version;
137
int
PriorityCharge0;
138
int
PriorityCharge1;
139
int
PriorityCharge2;
140
int
PriorityCharge3;
141
rdpContext* rdpcontext;
142
143
IWTSVirtualChannelManager* channel_mgr;
144
};
145
146
#endif
/* FREERDP_CHANNEL_DRDYNVC_CLIENT_MAIN_H */
ADDIN_ARGV
Definition
settings_types.h:390
CHANNEL_DEF
Definition
wtsapi.h:78
CHANNEL_ENTRY_POINTS_FREERDP_EX
Definition
svc.h:60
DVCMAN_CHANNEL_STATS
Definition
client/drdynvc_main.h:82
DVCMAN_CHANNEL
Definition
client/drdynvc_main.h:92
DVCMAN_ENTRY_POINTS
Definition
client/drdynvc_main.h:66
DVCMAN_LISTENER
Definition
client/drdynvc_main.h:56
DVCMAN
Definition
client/drdynvc_main.h:42
RTL_CRITICAL_SECTION
Definition
include/winpr/synch.h:160
drdynvc_plugin
Definition
client/drdynvc_main.h:121
wStream
Definition
include/winpr/stream.h:42
channels
drdynvc
client
drdynvc_main.h
Generated by
1.9.8