| 
| typedef int(*  | pfnShadowSubsystemEntry) (RDP_SHADOW_ENTRY_POINTS *pEntryPoints) | 
|   | 
| typedef rdpShadowSubsystem *(*  | pfnShadowSubsystemNew) (void) | 
|   | 
| typedef void(*  | pfnShadowSubsystemFree) (rdpShadowSubsystem *subsystem) | 
|   | 
| typedef int(*  | pfnShadowSubsystemInit) (rdpShadowSubsystem *subsystem) | 
|   | 
| typedef int(*  | pfnShadowSubsystemUninit) (rdpShadowSubsystem *subsystem) | 
|   | 
| typedef int(*  | pfnShadowSubsystemStart) (rdpShadowSubsystem *subsystem) | 
|   | 
| typedef int(*  | pfnShadowSubsystemStop) (rdpShadowSubsystem *subsystem) | 
|   | 
| typedef UINT32(*  | pfnShadowEnumMonitors) (MONITOR_DEF *monitors, UINT32 maxMonitors) | 
|   | 
| typedef int(*  | pfnShadowAuthenticate) (rdpShadowSubsystem *subsystem, rdpShadowClient *client, const char *user, const char *domain, const char *password) | 
|   | 
| typedef BOOL(*  | pfnShadowClientConnect) (rdpShadowSubsystem *subsystem, rdpShadowClient *client) | 
|   | 
| typedef void(*  | pfnShadowClientDisconnect) (rdpShadowSubsystem *subsystem, rdpShadowClient *client) | 
|   | 
| typedef BOOL(*  | pfnShadowClientCapabilities) (rdpShadowSubsystem *subsystem, rdpShadowClient *client) | 
|   | 
| typedef BOOL(*  | pfnShadowSynchronizeEvent) (rdpShadowSubsystem *subsystem, rdpShadowClient *client, UINT32 flags) | 
|   | 
| typedef BOOL(*  | pfnShadowKeyboardEvent) (rdpShadowSubsystem *subsystem, rdpShadowClient *client, UINT16 flags, UINT8 code) | 
|   | 
| typedef BOOL(*  | pfnShadowUnicodeKeyboardEvent) (rdpShadowSubsystem *subsystem, rdpShadowClient *client, UINT16 flags, UINT16 code) | 
|   | 
| typedef BOOL(*  | pfnShadowMouseEvent) (rdpShadowSubsystem *subsystem, rdpShadowClient *client, UINT16 flags, UINT16 x, UINT16 y) | 
|   | 
| typedef BOOL(*  | pfnShadowExtendedMouseEvent) (rdpShadowSubsystem *subsystem, rdpShadowClient *client, UINT16 flags, UINT16 x, UINT16 y) | 
|   | 
| typedef BOOL(*  | pfnShadowChannelAudinServerReceiveSamples) (rdpShadowSubsystem *subsystem, rdpShadowClient *client, const AUDIO_FORMAT *format, wStream *data) | 
|   | 
| typedef void(*  | MSG_OUT_FREE_FN) (UINT32 id, SHADOW_MSG_OUT *msg) | 
|   | 
 | 
| FREERDP_API void  | shadow_subsystem_set_entry_builtin (const char *name) | 
|   | 
| FREERDP_API void  | shadow_subsystem_set_entry (pfnShadowSubsystemEntry pEntry) | 
|   | 
| FREERDP_API  | WINPR_DEPRECATED_VAR ("Use shadow_subsystem_pointer_convert_alpha_pointer_data_to_format instead", int shadow_subsystem_pointer_convert_alpha_pointer_data(const BYTE *WINPR_RESTRICT pixels, BOOL premultiplied, UINT32 width, UINT32 height, SHADOW_MSG_OUT_POINTER_ALPHA_UPDATE *WINPR_RESTRICT pointerColor)) | 
|   | 
| FREERDP_API int  | shadow_subsystem_pointer_convert_alpha_pointer_data_to_format (const BYTE *WINPR_RESTRICT pixels, UINT32 format, BOOL premultiplied, UINT32 width, UINT32 height, SHADOW_MSG_OUT_POINTER_ALPHA_UPDATE *WINPR_RESTRICT pointerColor) | 
|   | 
| FREERDP_API int  | shadow_server_parse_command_line (rdpShadowServer *server, int argc, char **argv, COMMAND_LINE_ARGUMENT_A *cargs) | 
|   | 
| FREERDP_API int  | shadow_server_command_line_status_print (rdpShadowServer *server, int argc, char **argv, int status, COMMAND_LINE_ARGUMENT_A *cargs) | 
|   | 
| FREERDP_API int  | shadow_server_start (rdpShadowServer *server) | 
|   | 
| FREERDP_API int  | shadow_server_stop (rdpShadowServer *server) | 
|   | 
| FREERDP_API int  | shadow_server_init (rdpShadowServer *server) | 
|   | 
| FREERDP_API int  | shadow_server_uninit (rdpShadowServer *server) | 
|   | 
| FREERDP_API UINT32  | shadow_enum_monitors (MONITOR_DEF *monitors, UINT32 maxMonitors) | 
|   | 
| FREERDP_API void  | shadow_server_free (rdpShadowServer *server) | 
|   | 
| FREERDP_API rdpShadowServer *  | shadow_server_new (void) | 
|   | 
| FREERDP_API int  | shadow_capture_align_clip_rect (RECTANGLE_16 *rect, const RECTANGLE_16 *clip) | 
|   | 
| FREERDP_API  | WINPR_DEPRECATED_VAR ("Use shadow_capture_compare_with_format", int shadow_capture_compare(const BYTE *WINPR_RESTRICT pData1, UINT32 nStep1, UINT32 nWidth, UINT32 nHeight, const BYTE *WINPR_RESTRICT pData2, UINT32 nStep2, RECTANGLE_16 *WINPR_RESTRICT rect)) | 
|   | 
| FREERDP_API int  | shadow_capture_compare_with_format (const BYTE *WINPR_RESTRICT pData1, UINT32 format1, UINT32 nStep1, UINT32 nWidth, UINT32 nHeight, const BYTE *WINPR_RESTRICT pData2, UINT32 format2, UINT32 nStep2, RECTANGLE_16 *WINPR_RESTRICT rect) | 
|   | 
| FREERDP_API void  | shadow_subsystem_frame_update (rdpShadowSubsystem *subsystem) | 
|   | 
| FREERDP_API BOOL  | shadow_client_post_msg (rdpShadowClient *client, void *context, UINT32 type, SHADOW_MSG_OUT *msg, void *lParam) | 
|   | 
| FREERDP_API int  | shadow_client_boardcast_msg (rdpShadowServer *server, void *context, UINT32 type, SHADOW_MSG_OUT *msg, void *lParam) | 
|   | 
| FREERDP_API int  | shadow_client_boardcast_quit (rdpShadowServer *server, int nExitCode) | 
|   | 
| FREERDP_API UINT32  | shadow_encoder_preferred_fps (rdpShadowEncoder *encoder) | 
|   | 
| FREERDP_API UINT32  | shadow_encoder_inflight_frames (rdpShadowEncoder *encoder) | 
|   | 
| FREERDP_API BOOL  | shadow_screen_resize (rdpShadowScreen *screen) | 
|   |