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));
66 FREERDP_API BOOL WTSVirtualChannelManagerOpen(HANDLE hServer);
67 FREERDP_API BOOL WTSVirtualChannelManagerCheckFileDescriptor(HANDLE hServer);
68 FREERDP_API BOOL WTSVirtualChannelManagerCheckFileDescriptorEx(HANDLE hServer, BOOL autoOpen);
69 FREERDP_API HANDLE WTSVirtualChannelManagerGetEventHandle(HANDLE hServer);
70 FREERDP_API BOOL WTSVirtualChannelManagerIsChannelJoined(HANDLE hServer,
const char* name);
71 FREERDP_API BYTE WTSVirtualChannelManagerGetDrdynvcState(HANDLE hServer);
72 FREERDP_API
void WTSVirtualChannelManagerSetDVCCreationCallback(HANDLE hServer,
73 psDVCCreationStatusCallback cb,
79 FREERDP_API UINT16 WTSChannelGetId(freerdp_peer* client,
const char* channel_name);
80 FREERDP_API BOOL WTSIsChannelJoinedByName(freerdp_peer* client,
const char* channel_name);
81 FREERDP_API BOOL WTSIsChannelJoinedById(freerdp_peer* client, UINT16 channel_id);
82 FREERDP_API BOOL WTSChannelSetHandleByName(freerdp_peer* client,
const char* channel_name,
84 FREERDP_API BOOL WTSChannelSetHandleById(freerdp_peer* client, UINT16 channel_id,
void* handle);
85 FREERDP_API
void* WTSChannelGetHandleByName(freerdp_peer* client,
const char* channel_name);
86 FREERDP_API
void* WTSChannelGetHandleById(freerdp_peer* client, UINT16 channel_id);
87 FREERDP_API
const char* WTSChannelGetName(freerdp_peer* client, UINT16 channel_id);
88 FREERDP_API
char** WTSGetAcceptedChannelNames(freerdp_peer* client,
size_t* count);
89 FREERDP_API INT64 WTSChannelGetOptions(freerdp_peer* client, UINT16 channel_id);
91 FREERDP_API UINT32 WTSChannelGetIdByHandle(HANDLE hChannelHandle);