VirtualBox

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

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

WDDM/VBoxTray: bugref:8444, defined 'unified' format for display mode hint

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id Revision
File size: 4.7 KB
Line 
1/** @file
2 * VBoxDisplay - private windows additions display header
3 */
4
5/*
6 * Copyright (C) 2006-2017 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
23typedef enum
24{
25 VBOXDISPLAY_MODEHINT_ACTIVE = 0x00000001,
26 VBOXDISPLAY_MODEHINT_PRIMARY = 0x00000002,
27 VBOXDISPLAY_MODEHINT_MASK = 0x00000003
28} VBOXDISPLAY_MODEHINT_FLAGS;
29
30typedef struct _VBOXDISPLAY_MODEHINT
31{
32 uint32_t idTarget;
33 int32_t xOrigin;
34 int32_t yOrigin;
35 uint32_t cx;
36 uint32_t cy;
37 uint32_t cBPP;
38 VBOXDISPLAY_MODEHINT_FLAGS fModeHintFlags;
39} VBOXDISPLAY_MODEHINT;
40
41#define VBOXESC_SETVISIBLEREGION 0xABCD9001
42#define VBOXESC_ISVRDPACTIVE 0xABCD9002
43#ifdef VBOX_WITH_WDDM
44# define VBOXESC_REINITVIDEOMODES 0xABCD9003
45# define VBOXESC_GETVBOXVIDEOCMCMD 0xABCD9004
46# define VBOXESC_DBGPRINT 0xABCD9005
47# define VBOXESC_SCREENLAYOUT 0xABCD9006
48# define VBOXESC_SWAPCHAININFO 0xABCD9007
49# define VBOXESC_UHGSMI_ALLOCATE 0xABCD9008
50# define VBOXESC_UHGSMI_DEALLOCATE 0xABCD9009
51# define VBOXESC_UHGSMI_SUBMIT 0xABCD900A
52# define VBOXESC_SHRC_ADDREF 0xABCD900B
53# define VBOXESC_SHRC_RELEASE 0xABCD900C
54# define VBOXESC_DBGDUMPBUF 0xABCD900D
55# define VBOXESC_CRHGSMICTLCON_CALL 0xABCD900E
56# define VBOXESC_CRHGSMICTLCON_GETCLIENTID 0xABCD900F
57# define VBOXESC_REINITVIDEOMODESBYMASK 0xABCD9010
58# define VBOXESC_ADJUSTVIDEOMODES 0xABCD9011
59# define VBOXESC_SETCTXHOSTID 0xABCD9012
60# define VBOXESC_CONFIGURETARGETS 0xABCD9013
61# define VBOXESC_SETALLOCHOSTID 0xABCD9014
62# define VBOXESC_CRHGSMICTLCON_GETHOSTCAPS 0xABCD9015
63# define VBOXESC_UPDATEMODES 0xABCD9016
64# define VBOXESC_GUEST_DISPLAYCHANGED 0xABCD9017
65# define VBOXESC_TARGET_CONNECTIVITY 0xABCD9018
66#endif /* #ifdef VBOX_WITH_WDDM */
67
68# define VBOXESC_ISANYX 0xABCD9200
69
70typedef struct VBOXDISPIFESCAPE
71{
72 int32_t escapeCode;
73 uint32_t u32CmdSpecific;
74} VBOXDISPIFESCAPE, *PVBOXDISPIFESCAPE;
75
76/* ensure command body is always 8-byte-aligned*/
77AssertCompile((sizeof (VBOXDISPIFESCAPE) & 7) == 0);
78
79#define VBOXDISPIFESCAPE_DATA_OFFSET() ((sizeof (VBOXDISPIFESCAPE) + 7) & ~7)
80#define VBOXDISPIFESCAPE_DATA(_pHead, _t) ( (_t*)(((uint8_t*)(_pHead)) + VBOXDISPIFESCAPE_DATA_OFFSET()))
81#define VBOXDISPIFESCAPE_DATA_SIZE(_s) ( (_s) < VBOXDISPIFESCAPE_DATA_OFFSET() ? 0 : (_s) - VBOXDISPIFESCAPE_DATA_OFFSET() )
82#define VBOXDISPIFESCAPE_SIZE(_cbData) ((_cbData) ? VBOXDISPIFESCAPE_DATA_OFFSET() + (_cbData) : sizeof (VBOXDISPIFESCAPE))
83
84#define IOCTL_VIDEO_VBOX_SETVISIBLEREGION \
85 CTL_CODE(FILE_DEVICE_VIDEO, 0xA01, METHOD_BUFFERED, FILE_ANY_ACCESS)
86
87#define IOCTL_VIDEO_VBOX_ISANYX \
88 CTL_CODE(FILE_DEVICE_VIDEO, 0xA02, METHOD_BUFFERED, FILE_ANY_ACCESS)
89
90typedef struct VBOXDISPIFESCAPE_ISANYX
91{
92 VBOXDISPIFESCAPE EscapeHdr;
93 uint32_t u32IsAnyX;
94} VBOXDISPIFESCAPE_ISANYX, *PVBOXDISPIFESCAPE_ISANYX;
95
96#ifdef VBOX_WITH_WDDM
97
98/* Enables code which performs (un)plugging of virtual displays in VBOXESC_UPDATEMODES.
99 * The code has been disabled as part of #8244.
100 */
101//#define VBOX_WDDM_REPLUG_ON_MODE_CHANGE
102
103/* for VBOX_VIDEO_MAX_SCREENS definition */
104#include <VBoxVideo.h>
105
106typedef struct VBOXWDDM_RECOMMENDVIDPN_SOURCE
107{
108 RTRECTSIZE Size;
109} VBOXWDDM_RECOMMENDVIDPN_SOURCE;
110
111typedef struct VBOXWDDM_RECOMMENDVIDPN_TARGET
112{
113 int32_t iSource;
114} VBOXWDDM_RECOMMENDVIDPN_TARGET;
115
116typedef struct
117{
118 VBOXWDDM_RECOMMENDVIDPN_SOURCE aSources[VBOX_VIDEO_MAX_SCREENS];
119 VBOXWDDM_RECOMMENDVIDPN_TARGET aTargets[VBOX_VIDEO_MAX_SCREENS];
120} VBOXWDDM_RECOMMENDVIDPN, *PVBOXWDDM_RECOMMENDVIDPN;
121
122#define VBOXWDDM_SCREENMASK_SIZE ((VBOX_VIDEO_MAX_SCREENS + 7) >> 3)
123
124typedef struct VBOXDISPIFESCAPE_UPDATEMODES
125{
126 VBOXDISPIFESCAPE EscapeHdr;
127 uint32_t u32TargetId;
128 RTRECTSIZE Size;
129} VBOXDISPIFESCAPE_UPDATEMODES;
130
131typedef struct VBOXDISPIFESCAPE_TARGETCONNECTIVITY
132{
133 VBOXDISPIFESCAPE EscapeHdr;
134 uint32_t u32TargetId;
135 uint32_t fu32Connect;
136} VBOXDISPIFESCAPE_TARGETCONNECTIVITY;
137
138#endif /* VBOX_WITH_WDDM */
139
140#endif
141
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