VirtualBox

source: vbox/trunk/src/VBox/Additions/WINNT/include/VBoxDisplay.h@ 69474

Last change on this file since 69474 was 69474, checked in by vboxsync, 7 years ago

*: scm updates - header files should have 'svn:keywords=Id Revision' too (doesn't mean they have to use them).

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id Revision
File size: 4.3 KB
Line 
1/** @file
2 * VBoxDisplay - private windows additions display header
3 */
4
5/*
6 * Copyright (C) 2006-2016 Oracle Corporation
7 *
8 * This file is part of VirtualBox Open Source Edition (OSE), as
9 * available from http://www.virtualbox.org. This file is free software;
10 * you can redistribute it and/or modify it under the terms of the GNU
11 * General Public License (GPL) as published by the Free Software
12 * Foundation, in version 2 as it comes in the "COPYING" file of the
13 * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
14 * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
15 */
16
17#ifndef ___winnt_include_VBoxDisplay_h___
18#define ___winnt_include_VBoxDisplay_h___
19
20#include <iprt/types.h>
21#include <iprt/assert.h>
22
23#define VBOXESC_SETVISIBLEREGION 0xABCD9001
24#define VBOXESC_ISVRDPACTIVE 0xABCD9002
25#ifdef VBOX_WITH_WDDM
26# define VBOXESC_REINITVIDEOMODES 0xABCD9003
27# define VBOXESC_GETVBOXVIDEOCMCMD 0xABCD9004
28# define VBOXESC_DBGPRINT 0xABCD9005
29# define VBOXESC_SCREENLAYOUT 0xABCD9006
30# define VBOXESC_SWAPCHAININFO 0xABCD9007
31# define VBOXESC_UHGSMI_ALLOCATE 0xABCD9008
32# define VBOXESC_UHGSMI_DEALLOCATE 0xABCD9009
33# define VBOXESC_UHGSMI_SUBMIT 0xABCD900A
34# define VBOXESC_SHRC_ADDREF 0xABCD900B
35# define VBOXESC_SHRC_RELEASE 0xABCD900C
36# define VBOXESC_DBGDUMPBUF 0xABCD900D
37# define VBOXESC_CRHGSMICTLCON_CALL 0xABCD900E
38# define VBOXESC_CRHGSMICTLCON_GETCLIENTID 0xABCD900F
39# define VBOXESC_REINITVIDEOMODESBYMASK 0xABCD9010
40# define VBOXESC_ADJUSTVIDEOMODES 0xABCD9011
41# define VBOXESC_SETCTXHOSTID 0xABCD9012
42# define VBOXESC_CONFIGURETARGETS 0xABCD9013
43# define VBOXESC_SETALLOCHOSTID 0xABCD9014
44# define VBOXESC_CRHGSMICTLCON_GETHOSTCAPS 0xABCD9015
45# define VBOXESC_UPDATEMODES 0xABCD9016
46# define VBOXESC_GUEST_DISPLAYCHANGED 0xABCD9017
47# define VBOXESC_TARGET_CONNECTIVITY 0xABCD9018
48#endif /* #ifdef VBOX_WITH_WDDM */
49
50# define VBOXESC_ISANYX 0xABCD9200
51
52typedef struct VBOXDISPIFESCAPE
53{
54 int32_t escapeCode;
55 uint32_t u32CmdSpecific;
56} VBOXDISPIFESCAPE, *PVBOXDISPIFESCAPE;
57
58/* ensure command body is always 8-byte-aligned*/
59AssertCompile((sizeof (VBOXDISPIFESCAPE) & 7) == 0);
60
61#define VBOXDISPIFESCAPE_DATA_OFFSET() ((sizeof (VBOXDISPIFESCAPE) + 7) & ~7)
62#define VBOXDISPIFESCAPE_DATA(_pHead, _t) ( (_t*)(((uint8_t*)(_pHead)) + VBOXDISPIFESCAPE_DATA_OFFSET()))
63#define VBOXDISPIFESCAPE_DATA_SIZE(_s) ( (_s) < VBOXDISPIFESCAPE_DATA_OFFSET() ? 0 : (_s) - VBOXDISPIFESCAPE_DATA_OFFSET() )
64#define VBOXDISPIFESCAPE_SIZE(_cbData) ((_cbData) ? VBOXDISPIFESCAPE_DATA_OFFSET() + (_cbData) : sizeof (VBOXDISPIFESCAPE))
65
66#define IOCTL_VIDEO_VBOX_SETVISIBLEREGION \
67 CTL_CODE(FILE_DEVICE_VIDEO, 0xA01, METHOD_BUFFERED, FILE_ANY_ACCESS)
68
69#define IOCTL_VIDEO_VBOX_ISANYX \
70 CTL_CODE(FILE_DEVICE_VIDEO, 0xA02, METHOD_BUFFERED, FILE_ANY_ACCESS)
71
72typedef struct VBOXDISPIFESCAPE_ISANYX
73{
74 VBOXDISPIFESCAPE EscapeHdr;
75 uint32_t u32IsAnyX;
76} VBOXDISPIFESCAPE_ISANYX, *PVBOXDISPIFESCAPE_ISANYX;
77
78#ifdef VBOX_WITH_WDDM
79
80/* Enables code which performs (un)plugging of virtual displays in VBOXESC_UPDATEMODES.
81 * The code has been disabled as part of #8244.
82 */
83//#define VBOX_WDDM_REPLUG_ON_MODE_CHANGE
84
85/* for VBOX_VIDEO_MAX_SCREENS definition */
86#include <VBoxVideo.h>
87
88typedef struct VBOXWDDM_RECOMMENDVIDPN_SOURCE
89{
90 RTRECTSIZE Size;
91} VBOXWDDM_RECOMMENDVIDPN_SOURCE;
92
93typedef struct VBOXWDDM_RECOMMENDVIDPN_TARGET
94{
95 int32_t iSource;
96} VBOXWDDM_RECOMMENDVIDPN_TARGET;
97
98typedef struct
99{
100 VBOXWDDM_RECOMMENDVIDPN_SOURCE aSources[VBOX_VIDEO_MAX_SCREENS];
101 VBOXWDDM_RECOMMENDVIDPN_TARGET aTargets[VBOX_VIDEO_MAX_SCREENS];
102} VBOXWDDM_RECOMMENDVIDPN, *PVBOXWDDM_RECOMMENDVIDPN;
103
104#define VBOXWDDM_SCREENMASK_SIZE ((VBOX_VIDEO_MAX_SCREENS + 7) >> 3)
105
106typedef struct VBOXDISPIFESCAPE_UPDATEMODES
107{
108 VBOXDISPIFESCAPE EscapeHdr;
109 uint32_t u32TargetId;
110 RTRECTSIZE Size;
111} VBOXDISPIFESCAPE_UPDATEMODES;
112
113typedef struct VBOXDISPIFESCAPE_TARGETCONNECTIVITY
114{
115 VBOXDISPIFESCAPE EscapeHdr;
116 uint32_t u32TargetId;
117 uint32_t fu32Connect;
118} VBOXDISPIFESCAPE_TARGETCONNECTIVITY;
119
120#endif /* VBOX_WITH_WDDM */
121
122#endif
123
Note: See TracBrowser for help on using the repository browser.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette