VirtualBox

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

Last change on this file was 98103, checked in by vboxsync, 16 months ago

Copyright year updates by scm.

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

© 2023 Oracle
ContactPrivacy policyTerms of Use