FreeRDP
svc_plugin.c File Reference
#include <assert.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <winpr/crt.h>
#include <winpr/synch.h>
#include <winpr/stream.h>
#include <winpr/collections.h>
#include <freerdp/constants.h>
#include <freerdp/log.h>
#include <freerdp/utils/event.h>
#include <freerdp/utils/svc_plugin.h>

Defines

#define TAG   FREERDP_TAG("utils")

Functions

void svc_plugin_add_init_handle_data (void *pInitHandle, void *pUserData)
voidsvc_plugin_get_init_handle_data (void *pInitHandle)
void svc_plugin_remove_init_handle_data (void *pInitHandle)
void svc_plugin_add_open_handle_data (DWORD openHandle, void *pUserData)
voidsvc_plugin_get_open_handle_data (DWORD openHandle)
void svc_plugin_remove_open_handle_data (DWORD openHandle)
static void svc_plugin_process_received (rdpSvcPlugin *plugin, void *pData, UINT32 dataLength, UINT32 totalLength, UINT32 dataFlags)
static void svc_plugin_process_event (rdpSvcPlugin *plugin, wMessage *event_in)
static VOID VCAPITYPE svc_plugin_open_event (DWORD openHandle, UINT event, LPVOID pData, UINT32 dataLength, UINT32 totalLength, UINT32 dataFlags)
static voidsvc_plugin_thread_func (void *arg)
static void svc_plugin_process_connected (rdpSvcPlugin *plugin, LPVOID pData, UINT32 dataLength)
static void svc_plugin_process_terminated (rdpSvcPlugin *plugin)
static VOID VCAPITYPE svc_plugin_init_event (LPVOID pInitHandle, UINT event, LPVOID pData, UINT dataLength)
void svc_plugin_init (rdpSvcPlugin *plugin, CHANNEL_ENTRY_POINTS *pEntryPoints)
void svc_plugin_terminate (rdpSvcPlugin *plugin)
int svc_plugin_send (rdpSvcPlugin *plugin, wStream *data_out)
int svc_plugin_send_event (rdpSvcPlugin *plugin, wMessage *event)

Variables

static wListDictionary * g_InitHandles
static wListDictionary * g_OpenHandles

Define Documentation

#define TAG   FREERDP_TAG("utils")

FreeRDP: A Remote Desktop Protocol Implementation Static Virtual Channel Interface

Copyright 2009-2011 Jay Sorg Copyright 2010-2011 Vic Lee

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.


Function Documentation

void svc_plugin_add_init_handle_data ( void pInitHandle,
void pUserData 
)

Here is the call graph for this function:

Here is the caller graph for this function:

void svc_plugin_add_open_handle_data ( DWORD  openHandle,
void pUserData 
)

Here is the call graph for this function:

Here is the caller graph for this function:

Here is the call graph for this function:

Here is the caller graph for this function:

Here is the call graph for this function:

Here is the caller graph for this function:

void svc_plugin_init ( rdpSvcPlugin *  plugin,
CHANNEL_ENTRY_POINTS pEntryPoints 
)

The channel manager will guarantee only one thread can call VirtualChannelInit at a time. So this should be safe.

Here is the call graph for this function:

Here is the caller graph for this function:

static VOID VCAPITYPE svc_plugin_init_event ( LPVOID  pInitHandle,
UINT  event,
LPVOID  pData,
UINT  dataLength 
) [static]

Here is the call graph for this function:

Here is the caller graph for this function:

static VOID VCAPITYPE svc_plugin_open_event ( DWORD  openHandle,
UINT  event,
LPVOID  pData,
UINT32  dataLength,
UINT32  totalLength,
UINT32  dataFlags 
) [static]

Here is the call graph for this function:

Here is the caller graph for this function:

static void svc_plugin_process_connected ( rdpSvcPlugin *  plugin,
LPVOID  pData,
UINT32  dataLength 
) [static]

Here is the call graph for this function:

Here is the caller graph for this function:

static void svc_plugin_process_event ( rdpSvcPlugin *  plugin,
wMessage *  event_in 
) [static]

Here is the call graph for this function:

Here is the caller graph for this function:

static void svc_plugin_process_received ( rdpSvcPlugin *  plugin,
void pData,
UINT32  dataLength,
UINT32  totalLength,
UINT32  dataFlags 
) [static]

Here is the call graph for this function:

Here is the caller graph for this function:

static void svc_plugin_process_terminated ( rdpSvcPlugin *  plugin) [static]

Here is the call graph for this function:

Here is the caller graph for this function:

Here is the call graph for this function:

Here is the caller graph for this function:

Here is the call graph for this function:

Here is the caller graph for this function:

int svc_plugin_send ( rdpSvcPlugin *  plugin,
wStream *  data_out 
)

Here is the call graph for this function:

Here is the caller graph for this function:

int svc_plugin_send_event ( rdpSvcPlugin *  plugin,
wMessage *  event 
)

Here is the caller graph for this function:

void svc_plugin_terminate ( rdpSvcPlugin *  plugin)

Here is the call graph for this function:

Here is the caller graph for this function:

static void* svc_plugin_thread_func ( void arg) [static]

Here is the call graph for this function:

Here is the caller graph for this function:


Variable Documentation

wListDictionary* g_InitHandles [static]
wListDictionary* g_OpenHandles [static]
All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Defines