FreeRDP
wf_mirage.h File Reference
#include "wf_interface.h"
This graph shows which files directly or indirectly include this file:

Data Structures

struct  CHANGES_RECORD
 
struct  CHANGES_BUF
 
struct  GETCHANGESBUF
 
struct  Esc_dmf_Qvi_IN
 
struct  Esc_dmf_Qvi_OUT
 
struct  Esc_dmf_pointer_shape_get_IN
 
struct  Esc_dmf_pointer_shape_get_OUT
 

Macros

#define CLIP_LIMIT   50
 
#define MAXCHANGES_BUF   20000
 
#define NOCACHE   1
 
#define OLDCACHE   2
 
#define NEWCACHE   3
 
#define EXT_DEVMODE_SIZE_MAX   3072
 
#define DMF_PIPE_SEC_SIZE_DEFAULT   ALIGN64K(sizeof(CHANGES_BUF))
 
#define dmf_sprb_ERRORMASK   0x07FF
 
#define dmf_sprb_STRICTSESSION_AFF   0x1FFF
 
#define DMF_ESC_RET_FAILF   0x80000000
 
#define DMF_ESC_RET_SSTMASK   0x0000FFFF
 
#define DMF_ESC_RET_IMMMASK   0x7FFF0000
 
#define ESC_QVI_PROD_MIRAGE   "MIRAGE"
 
#define ESC_QVI_PROD_QUASAR   "QUASAR"
 

Typedefs

typedef CHANGES_RECORDPCHANGES_RECORD
 

Enumerations

enum  { MIRROR_LOAD = 0 , MIRROR_UNLOAD = 1 }
 
enum  { DMF_ESCAPE_BASE_1_VB = 1030 , DMF_ESCAPE_BASE_2_VB = 1026 , DMF_ESCAPE_BASE_3_VB = 24 }
 
enum  { DMF_ESCAPE_BASE_1 = DMF_ESCAPE_BASE_1_VB , DMF_ESCAPE_BASE_2 = DMF_ESCAPE_BASE_2_VB , DMF_ESCAPE_BASE_3 = DMF_ESCAPE_BASE_3_VB }
 
enum  dmf_escape {
  dmf_esc_qry_ver_info = DMF_ESCAPE_BASE_2 + 0 , dmf_esc_usm_pipe_map = DMF_ESCAPE_BASE_1 + 0 , dmf_esc_usm_pipe_unmap = DMF_ESCAPE_BASE_1 + 1 , dmf_esc_test = DMF_ESCAPE_BASE_1 + 20 ,
  dmf_esc_usm_pipe_mapping_test = DMF_ESCAPE_BASE_1 + 21 , dmf_esc_pointer_shape_get = DMF_ESCAPE_BASE_3
}
 
enum  dmf_UpdEvent {
  dmf_dfo_IGNORE = 0 , dmf_dfo_FROM_SCREEN = 1 , dmf_dfo_FROM_DIB = 2 , dmf_dfo_TO_SCREEN = 3 ,
  dmf_dfo_SCREEN_SCREEN = 11 , dmf_dfo_BLIT = 12 , dmf_dfo_SOLIDFILL = 13 , dmf_dfo_BLEND = 14 ,
  dmf_dfo_TRANS = 15 , dmf_dfo_PLG = 17 , dmf_dfo_TEXTOUT = 18 , dmf_dfo_Ptr_Shape = 19 ,
  dmf_dfo_Ptr_Engage = 48 , dmf_dfo_Ptr_Avert = 49 , dmf_dfn_assert_on = 64 , dmf_dfn_assert_off = 65
}
 
enum  dmf_session_prob_status {
  dmf_sprb_internal_error = 0x0001 , dmf_sprb_miniport_gen_error = 0x0004 , dmf_sprb_memory_alloc_failed = 0x0008 , dmf_sprb_pipe_buff_overflow = 0x0010 ,
  dmf_sprb_pipe_buff_insufficient = 0x0020 , dmf_sprb_pipe_not_ready = 0x0040 , dmf_sprb_gdi_err = 0x0100 , dmf_sprb_owner_died = 0x0400 ,
  dmf_sprb_tgtwnd_gone = 0x0800 , dmf_sprb_pdev_detached = 0x2000
}
 
enum  dmf_esc_retcode {
  dmf_escret_generic_ok = 0x00010000 , dmf_escret_bad_state = 0x00100000 , dmf_escret_access_denied = 0x00200000 , dmf_escret_bad_buffer_size = 0x00400000 ,
  dmf_escret_internal_err = 0x00800000 , dmf_escret_out_of_memory = 0x02000000 , dmf_escret_already_connected = 0x04000000 , dmf_escret_oh_boy_too_late = 0x08000000 ,
  dmf_escret_bad_window = 0x10000000 , dmf_escret_drv_ver_higher = 0x20000000 , dmf_escret_drv_ver_lower = 0x40000000
}
 
enum  { esc_qvi_prod_name_max = 16 }
 

Functions

BOOL wf_mirror_driver_find_display_device (wfInfo *wfi)
 
BOOL wf_mirror_driver_display_device_attach (wfInfo *wfi, DWORD mode)
 
BOOL wf_mirror_driver_update (wfInfo *wfi, int mode)
 
BOOL wf_mirror_driver_map_memory (wfInfo *wfi)
 
BOOL wf_mirror_driver_cleanup (wfInfo *wfi)
 
BOOL wf_mirror_driver_activate (wfInfo *wfi)
 
void wf_mirror_driver_deactivate (wfInfo *wfi)
 

Macro Definition Documentation

◆ CLIP_LIMIT

#define CLIP_LIMIT   50

◆ DMF_ESC_RET_FAILF

#define DMF_ESC_RET_FAILF   0x80000000

◆ DMF_ESC_RET_IMMMASK

#define DMF_ESC_RET_IMMMASK   0x7FFF0000

◆ DMF_ESC_RET_SSTMASK

#define DMF_ESC_RET_SSTMASK   0x0000FFFF

◆ DMF_PIPE_SEC_SIZE_DEFAULT

#define DMF_PIPE_SEC_SIZE_DEFAULT   ALIGN64K(sizeof(CHANGES_BUF))

◆ dmf_sprb_ERRORMASK

#define dmf_sprb_ERRORMASK   0x07FF

◆ dmf_sprb_STRICTSESSION_AFF

#define dmf_sprb_STRICTSESSION_AFF   0x1FFF

◆ ESC_QVI_PROD_MIRAGE

#define ESC_QVI_PROD_MIRAGE   "MIRAGE"

◆ ESC_QVI_PROD_QUASAR

#define ESC_QVI_PROD_QUASAR   "QUASAR"

◆ EXT_DEVMODE_SIZE_MAX

#define EXT_DEVMODE_SIZE_MAX   3072

◆ MAXCHANGES_BUF

#define MAXCHANGES_BUF   20000

◆ NEWCACHE

#define NEWCACHE   3

◆ NOCACHE

#define NOCACHE   1

◆ OLDCACHE

#define OLDCACHE   2

Typedef Documentation

◆ PCHANGES_RECORD

Enumeration Type Documentation

◆ anonymous enum

anonymous enum

FreeRDP: A Remote Desktop Protocol Implementation FreeRDP Windows Server

Copyright 2012 Marc-Andre Moreau marca.nosp@m.ndre.nosp@m..more.nosp@m.au@g.nosp@m.mail..nosp@m.com Copyright 2012-2013 Corey Clayton can.o.nosp@m.f.tu.nosp@m.na@gm.nosp@m.ail..nosp@m.com

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.

Enumerator
MIRROR_LOAD 
MIRROR_UNLOAD 

◆ anonymous enum

anonymous enum
Enumerator
DMF_ESCAPE_BASE_1_VB 
DMF_ESCAPE_BASE_2_VB 
DMF_ESCAPE_BASE_3_VB 

◆ anonymous enum

anonymous enum
Enumerator
DMF_ESCAPE_BASE_1 
DMF_ESCAPE_BASE_2 
DMF_ESCAPE_BASE_3 

◆ anonymous enum

anonymous enum
Enumerator
esc_qvi_prod_name_max 

◆ dmf_esc_retcode

Enumerator
dmf_escret_generic_ok 
dmf_escret_bad_state 
dmf_escret_access_denied 
dmf_escret_bad_buffer_size 
dmf_escret_internal_err 
dmf_escret_out_of_memory 
dmf_escret_already_connected 
dmf_escret_oh_boy_too_late 
dmf_escret_bad_window 
dmf_escret_drv_ver_higher 
dmf_escret_drv_ver_lower 

◆ dmf_escape

enum dmf_escape
Enumerator
dmf_esc_qry_ver_info 
dmf_esc_usm_pipe_map 
dmf_esc_usm_pipe_unmap 
dmf_esc_test 
dmf_esc_usm_pipe_mapping_test 
dmf_esc_pointer_shape_get 

◆ dmf_session_prob_status

Enumerator
dmf_sprb_internal_error 
dmf_sprb_miniport_gen_error 
dmf_sprb_memory_alloc_failed 
dmf_sprb_pipe_buff_overflow 
dmf_sprb_pipe_buff_insufficient 
dmf_sprb_pipe_not_ready 
dmf_sprb_gdi_err 
dmf_sprb_owner_died 
dmf_sprb_tgtwnd_gone 
dmf_sprb_pdev_detached 

◆ dmf_UpdEvent

Enumerator
dmf_dfo_IGNORE 
dmf_dfo_FROM_SCREEN 
dmf_dfo_FROM_DIB 
dmf_dfo_TO_SCREEN 
dmf_dfo_SCREEN_SCREEN 
dmf_dfo_BLIT 
dmf_dfo_SOLIDFILL 
dmf_dfo_BLEND 
dmf_dfo_TRANS 
dmf_dfo_PLG 
dmf_dfo_TEXTOUT 
dmf_dfo_Ptr_Shape 
dmf_dfo_Ptr_Engage 
dmf_dfo_Ptr_Avert 
dmf_dfn_assert_on 
dmf_dfn_assert_off 

Function Documentation

◆ wf_mirror_driver_activate()

BOOL wf_mirror_driver_activate ( wfInfo *  wfi)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ wf_mirror_driver_cleanup()

BOOL wf_mirror_driver_cleanup ( wfInfo *  wfi)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ wf_mirror_driver_deactivate()

void wf_mirror_driver_deactivate ( wfInfo *  wfi)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ wf_mirror_driver_display_device_attach()

BOOL wf_mirror_driver_display_device_attach ( wfInfo *  wfi,
DWORD  mode 
)

This function will attempt to access the the windows registry using the device key stored in the current wfi. It will attempt to read the value of the "Attach.ToDesktop" subkey and will return TRUE if the value is already set to val. If unable to read the subkey, this function will return FALSE. If the subkey is not set to val it will then attempt to set it to val and return TRUE. If unsuccessful or an unexpected value is encountered, the function returns FALSE.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ wf_mirror_driver_find_display_device()

BOOL wf_mirror_driver_find_display_device ( wfInfo *  wfi)
Here is the caller graph for this function:

◆ wf_mirror_driver_map_memory()

BOOL wf_mirror_driver_map_memory ( wfInfo *  wfi)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ wf_mirror_driver_update()

BOOL wf_mirror_driver_update ( wfInfo *  wfi,
int  mode 
)

This function will attempt to apply the currently configured display settings in the registry to the display driver. It will return TRUE if successful otherwise it returns FALSE. If mode is MIRROR_UNLOAD then the the driver will be asked to remove itself.

Here is the call graph for this function:
Here is the caller graph for this function: