svc.h (2629B)
1/** 2 * FreeRDP: A Remote Desktop Protocol Implementation 3 * Static Virtual Channel Interface 4 * 5 * Copyright 2009-2011 Jay Sorg 6 * Copyright 2015 Thincast Technologies GmbH 7 * Copyright 2015 DI (FH) Martin Haimberger <martin.haimberger@thincast.com> 8 * 9 * Licensed under the Apache License, Version 2.0 (the "License"); 10 * you may not use this file except in compliance with the License. 11 * You may obtain a copy of the License at 12 * 13 * http://www.apache.org/licenses/LICENSE-2.0 14 * 15 * Unless required by applicable law or agreed to in writing, software 16 * distributed under the License is distributed on an "AS IS" BASIS, 17 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 18 * See the License for the specific language governing permissions and 19 * limitations under the License. 20 */ 21 22#ifndef FREERDP_SVC_H 23#define FREERDP_SVC_H 24 25#include <freerdp/api.h> 26#include <freerdp/types.h> 27 28#include <winpr/wtsapi.h> 29#include <freerdp/freerdp.h> 30 31#define CHANNEL_EVENT_USER 1000 32 33#define CHANNEL_EXPORT_FUNC_NAME "VirtualChannelEntry" 34#define CHANNEL_EXPORT_FUNC_NAME_EX "VirtualChannelEntryEx" 35 36#define FREERDP_CHANNEL_MAGIC_NUMBER 0x46524450 37 38struct _CHANNEL_ENTRY_POINTS_FREERDP 39{ 40 UINT32 cbSize; 41 UINT32 protocolVersion; 42 PVIRTUALCHANNELINIT pVirtualChannelInit; 43 PVIRTUALCHANNELOPEN pVirtualChannelOpen; 44 PVIRTUALCHANNELCLOSE pVirtualChannelClose; 45 PVIRTUALCHANNELWRITE pVirtualChannelWrite; 46 47 /* Extended Fields */ 48 UINT32 MagicNumber; /* identifies FreeRDP */ 49 void* pExtendedData; /* extended initial data */ 50 void* pInterface; /* channel callback interface, use after initialization */ 51 void** ppInterface; /* channel callback interface, use for initialization */ 52 rdpContext* context; 53}; 54typedef struct _CHANNEL_ENTRY_POINTS_FREERDP CHANNEL_ENTRY_POINTS_FREERDP; 55typedef CHANNEL_ENTRY_POINTS_FREERDP* PCHANNEL_ENTRY_POINTS_FREERDP; 56 57struct _CHANNEL_ENTRY_POINTS_FREERDP_EX 58{ 59 UINT32 cbSize; 60 UINT32 protocolVersion; 61 PVIRTUALCHANNELINITEX pVirtualChannelInitEx; 62 PVIRTUALCHANNELOPENEX pVirtualChannelOpenEx; 63 PVIRTUALCHANNELCLOSEEX pVirtualChannelCloseEx; 64 PVIRTUALCHANNELWRITEEX pVirtualChannelWriteEx; 65 66 /* Extended Fields */ 67 UINT32 MagicNumber; /* identifies FreeRDP */ 68 void* pExtendedData; /* extended initial data */ 69 void* pInterface; /* channel callback interface, use after initialization */ 70 void** ppInterface; /* channel callback interface, use for initialization */ 71 rdpContext* context; 72}; 73typedef struct _CHANNEL_ENTRY_POINTS_FREERDP_EX CHANNEL_ENTRY_POINTS_FREERDP_EX; 74typedef CHANNEL_ENTRY_POINTS_FREERDP_EX* PCHANNEL_ENTRY_POINTS_FREERDP_EX; 75 76#endif /* FREERDP_SVC_H */