32#ifndef FREERDP_WTSVC_H
33#define FREERDP_WTSVC_H
35#include <freerdp/types.h>
36#include <freerdp/peer.h>
38#include <winpr/winpr.h>
39#include <winpr/wtypes.h>
40#include <winpr/wtsapi.h>
49 DRDYNVC_STATE_NONE = 0,
50 DRDYNVC_STATE_INITIALIZED = 1,
51 DRDYNVC_STATE_READY = 2,
52 DRDYNVC_STATE_FAILED = 3
55 typedef BOOL (*psDVCCreationStatusCallback)(
void* userdata, UINT32 channelId,
56 INT32 creationStatus);
61#if defined(WITH_FREERDP_DEPRECATED)
62 WINPR_DEPRECATED_VAR(
"Use WTSVirtualChannelManagerGetEventHandle",
63 FREERDP_API
void WTSVirtualChannelManagerGetFileDescriptor(
64 HANDLE hServer,
void** fds,
int* fds_count));
67 FREERDP_API BOOL WTSVirtualChannelManagerOpen(HANDLE hServer);
70 FREERDP_API BOOL WTSVirtualChannelManagerCheckFileDescriptor(HANDLE hServer);
73 FREERDP_API BOOL WTSVirtualChannelManagerCheckFileDescriptorEx(HANDLE hServer, BOOL autoOpen);
76 FREERDP_API HANDLE WTSVirtualChannelManagerGetEventHandle(HANDLE hServer);
79 FREERDP_API BOOL WTSVirtualChannelManagerIsChannelJoined(HANDLE hServer,
const char* name);
82 FREERDP_API BYTE WTSVirtualChannelManagerGetDrdynvcState(HANDLE hServer);
84 FREERDP_API
void WTSVirtualChannelManagerSetDVCCreationCallback(HANDLE hServer,
85 psDVCCreationStatusCallback cb,
92 FREERDP_API UINT16 WTSChannelGetId(freerdp_peer* client,
const char* channel_name);
95 FREERDP_API BOOL WTSIsChannelJoinedByName(freerdp_peer* client,
const char* channel_name);
98 FREERDP_API BOOL WTSIsChannelJoinedById(freerdp_peer* client, UINT16 channel_id);
101 FREERDP_API BOOL WTSChannelSetHandleByName(freerdp_peer* client,
const char* channel_name,
105 FREERDP_API BOOL WTSChannelSetHandleById(freerdp_peer* client, UINT16 channel_id,
void* handle);
108 FREERDP_API
void* WTSChannelGetHandleByName(freerdp_peer* client,
const char* channel_name);
111 FREERDP_API
void* WTSChannelGetHandleById(freerdp_peer* client, UINT16 channel_id);
114 FREERDP_API
const char* WTSChannelGetName(freerdp_peer* client, UINT16 channel_id);
117 FREERDP_API
char** WTSGetAcceptedChannelNames(freerdp_peer* client,
size_t* count);
120 FREERDP_API INT64 WTSChannelGetOptions(freerdp_peer* client, UINT16 channel_id);
123 FREERDP_API UINT32 WTSChannelGetIdByHandle(HANDLE hChannelHandle);