VirtualBox

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

Last change on this file since 85675 was 82968, checked in by vboxsync, 5 years ago

Copyright year updates by scm.

  • 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-2020 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 GA_INCLUDED_WINNT_VBoxDisplay_h
18#define GA_INCLUDED_WINNT_VBoxDisplay_h
19#ifndef RT_WITHOUT_PRAGMA_ONCE
20# pragma once
21#endif
22
23#include <iprt/types.h>
24#include <iprt/assert.h>
25
26#define VBOXESC_SETVISIBLEREGION 0xABCD9001
27#define VBOXESC_ISVRDPACTIVE 0xABCD9002
28#ifdef VBOX_WITH_WDDM
29# define VBOXESC_REINITVIDEOMODES 0xABCD9003
30# define VBOXESC_GETVBOXVIDEOCMCMD 0xABCD9004
31# define VBOXESC_DBGPRINT 0xABCD9005
32# define VBOXESC_SCREENLAYOUT 0xABCD9006
33// obsolete 0xABCD9007
34// obsolete 0xABCD9008
35// obsolete 0xABCD9009
36// obsolete 0xABCD900A
37// obsolete 0xABCD900B
38// obsolete 0xABCD900C
39# define VBOXESC_DBGDUMPBUF 0xABCD900D
40// obsolete 0xABCD900E
41// obsolete 0xABCD900F
42# define VBOXESC_REINITVIDEOMODESBYMASK 0xABCD9010
43# define VBOXESC_ADJUSTVIDEOMODES 0xABCD9011
44// obsolete 0xABCD9012
45# define VBOXESC_CONFIGURETARGETS 0xABCD9013
46# define VBOXESC_SETALLOCHOSTID 0xABCD9014
47// obsolete 0xABCD9015
48# define VBOXESC_UPDATEMODES 0xABCD9016
49# define VBOXESC_GUEST_DISPLAYCHANGED 0xABCD9017
50# define VBOXESC_TARGET_CONNECTIVITY 0xABCD9018
51#endif /* #ifdef VBOX_WITH_WDDM */
52
53# define VBOXESC_ISANYX 0xABCD9200
54
55typedef struct VBOXDISPIFESCAPE
56{
57 int32_t escapeCode;
58 uint32_t u32CmdSpecific;
59} VBOXDISPIFESCAPE, *PVBOXDISPIFESCAPE;
60
61/* ensure command body is always 8-byte-aligned*/
62AssertCompile((sizeof (VBOXDISPIFESCAPE) & 7) == 0);
63
64#define VBOXDISPIFESCAPE_DATA_OFFSET() ((sizeof (VBOXDISPIFESCAPE) + 7) & ~7)
65#define VBOXDISPIFESCAPE_DATA(_pHead, _t) ( (_t*)(((uint8_t*)(_pHead)) + VBOXDISPIFESCAPE_DATA_OFFSET()))
66#define VBOXDISPIFESCAPE_DATA_SIZE(_s) ( (_s) < VBOXDISPIFESCAPE_DATA_OFFSET() ? 0 : (_s) - VBOXDISPIFESCAPE_DATA_OFFSET() )
67#define VBOXDISPIFESCAPE_SIZE(_cbData) ((_cbData) ? VBOXDISPIFESCAPE_DATA_OFFSET() + (_cbData) : sizeof (VBOXDISPIFESCAPE))
68
69#define IOCTL_VIDEO_VBOX_SETVISIBLEREGION \
70 CTL_CODE(FILE_DEVICE_VIDEO, 0xA01, METHOD_BUFFERED, FILE_ANY_ACCESS)
71
72#define IOCTL_VIDEO_VBOX_ISANYX \
73 CTL_CODE(FILE_DEVICE_VIDEO, 0xA02, METHOD_BUFFERED, FILE_ANY_ACCESS)
74
75typedef struct VBOXDISPIFESCAPE_ISANYX
76{
77 VBOXDISPIFESCAPE EscapeHdr;
78 uint32_t u32IsAnyX;
79} VBOXDISPIFESCAPE_ISANYX, *PVBOXDISPIFESCAPE_ISANYX;
80
81#ifdef VBOX_WITH_WDDM
82
83/* Enables code which performs (un)plugging of virtual displays in VBOXESC_UPDATEMODES.
84 * The code has been disabled as part of #8244.
85 */
86//#define VBOX_WDDM_REPLUG_ON_MODE_CHANGE
87
88/* for VBOX_VIDEO_MAX_SCREENS definition */
89#include <VBoxVideo.h>
90
91typedef struct VBOXWDDM_RECOMMENDVIDPN_SOURCE
92{
93 RTRECTSIZE Size;
94} VBOXWDDM_RECOMMENDVIDPN_SOURCE;
95
96typedef struct VBOXWDDM_RECOMMENDVIDPN_TARGET
97{
98 int32_t iSource;
99} VBOXWDDM_RECOMMENDVIDPN_TARGET;
100
101typedef struct
102{
103 VBOXWDDM_RECOMMENDVIDPN_SOURCE aSources[VBOX_VIDEO_MAX_SCREENS];
104 VBOXWDDM_RECOMMENDVIDPN_TARGET aTargets[VBOX_VIDEO_MAX_SCREENS];
105} VBOXWDDM_RECOMMENDVIDPN, *PVBOXWDDM_RECOMMENDVIDPN;
106
107#define VBOXWDDM_SCREENMASK_SIZE ((VBOX_VIDEO_MAX_SCREENS + 7) >> 3)
108
109typedef struct VBOXDISPIFESCAPE_UPDATEMODES
110{
111 VBOXDISPIFESCAPE EscapeHdr;
112 uint32_t u32TargetId;
113 RTRECTSIZE Size;
114} VBOXDISPIFESCAPE_UPDATEMODES;
115
116typedef struct VBOXDISPIFESCAPE_TARGETCONNECTIVITY
117{
118 VBOXDISPIFESCAPE EscapeHdr;
119 uint32_t u32TargetId;
120 uint32_t fu32Connect;
121} VBOXDISPIFESCAPE_TARGETCONNECTIVITY;
122
123#endif /* VBOX_WITH_WDDM */
124
125#endif /* !GA_INCLUDED_WINNT_VBoxDisplay_h */
126
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