VirtualBox

source: vbox/trunk/src/VBox/Additions/WINNT/Graphics/Miniport/vboxioctl.h@ 28475

Last change on this file since 28475 was 27839, checked in by vboxsync, 15 years ago

2d: working multi-monitor + some fixing for working with not-using-VRAM mode

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 4.8 KB
Line 
1/** @file
2 * VBoxGraphics - VirtualBox Win 2000/XP guest video driver.
3 *
4 * Display driver entry points.
5 */
6
7/*
8 * Copyright (C) 2006-2007 Sun Microsystems, Inc.
9 *
10 * This file is part of VirtualBox Open Source Edition (OSE), as
11 * available from http://www.virtualbox.org. This file is free software;
12 * you can redistribute it and/or modify it under the terms of the GNU
13 * General Public License (GPL) as published by the Free Software
14 * Foundation, in version 2 as it comes in the "COPYING" file of the
15 * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
16 * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
17 *
18 * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa
19 * Clara, CA 95054 USA or visit http://www.sun.com if you need
20 * additional information or have any questions.
21 */
22
23#ifndef __VBOXIOCTL__H
24#define __VBOXIOCTL__H
25
26#include <VBox/VMMDev.h>
27#include <VBox/VBoxGuest.h>
28
29#ifdef VBOX_WITH_HGSMI
30#include <VBox/HGSMI/HGSMI.h>
31#include "VBoxHGSMI.h"
32#endif /* VBOX_WITH_HGSMI */
33
34#define IOCTL_VIDEO_INTERPRET_DISPLAY_MEMORY \
35 CTL_CODE(FILE_DEVICE_VIDEO, 0x420, METHOD_BUFFERED, FILE_ANY_ACCESS)
36
37#define IOCTL_VIDEO_QUERY_DISPLAY_INFO \
38 CTL_CODE(FILE_DEVICE_VIDEO, 0x421, METHOD_BUFFERED, FILE_ANY_ACCESS)
39
40/** Called by the display driver when it is ready to
41 * switch to VBVA operation mode.
42 * Successful return means that VBVA can be used and
43 * output buffer contains VBVAENABLERESULT data.
44 * An error means that VBVA can not be used
45 * (disabled or not supported by the host).
46 */
47#define IOCTL_VIDEO_VBVA_ENABLE \
48 CTL_CODE(FILE_DEVICE_VIDEO, 0x400, METHOD_BUFFERED, FILE_ANY_ACCESS)
49
50#ifdef VBOX_WITH_HGSMI
51#define IOCTL_VIDEO_QUERY_HGSMI_INFO \
52 CTL_CODE(FILE_DEVICE_VIDEO, 0x430, METHOD_BUFFERED, FILE_ANY_ACCESS)
53
54#define IOCTL_VIDEO_HGSMI_QUERY_CALLBACKS \
55 CTL_CODE(FILE_DEVICE_VIDEO, 0x431, METHOD_BUFFERED, FILE_ANY_ACCESS)
56
57#define IOCTL_VIDEO_HGSMI_HANDLER_ENABLE \
58 CTL_CODE(FILE_DEVICE_VIDEO, 0x432, METHOD_BUFFERED, FILE_ANY_ACCESS)
59
60#define IOCTL_VIDEO_HGSMI_HANDLER_DISABLE \
61 CTL_CODE(FILE_DEVICE_VIDEO, 0x433, METHOD_BUFFERED, FILE_ANY_ACCESS)
62
63#define IOCTL_VIDEO_HGSMI_QUERY_PORTPROCS \
64 CTL_CODE(FILE_DEVICE_VIDEO, 0x434, METHOD_BUFFERED, FILE_ANY_ACCESS)
65
66#define IOCTL_VIDEO_VHWA_QUERY_INFO \
67 CTL_CODE(FILE_DEVICE_VIDEO, 0x435, METHOD_BUFFERED, FILE_ANY_ACCESS)
68
69#endif /* VBOX_WITH_HGSMI */
70
71#pragma pack(1)
72/**
73 * Data returned by IOCTL_VIDEO_VBVA_ENABLE.
74 *
75 */
76typedef struct _VBVAENABLERESULT
77{
78 /** Pointer to VBVAMemory part of VMMDev memory region. */
79 VBVAMEMORY *pVbvaMemory;
80
81 /** Called to force the host to process VBVA memory,
82 * when there is no more free space in VBVA memory.
83 * Normally this never happens.
84 *
85 * The other purpose is to perform a synchronous command.
86 * But the goal is to have no such commands at all.
87 */
88 DECLR0CALLBACKMEMBER(void, pfnFlush, (void *pvFlush));
89
90 /** Pointer required by the pfnFlush callback. */
91 void *pvFlush;
92
93} VBVAENABLERESULT;
94
95/**
96 * Data returned by IOCTL_VIDEO_QUERY_DISPLAY_INFO.
97 *
98 */
99typedef struct _QUERYDISPLAYINFORESULT
100{
101 /* Device index (0 for primary) */
102 ULONG iDevice;
103
104 /* Size of the display information area. */
105 uint32_t u32DisplayInfoSize;
106} QUERYDISPLAYINFORESULT;
107
108#ifdef VBOX_WITH_HGSMI
109/**
110 * Data returned by IOCTL_VIDEO_QUERY_HGSMI_INFO.
111 *
112 */
113typedef struct _QUERYHGSMIRESULT
114{
115 /* Device index (0 for primary) */
116 ULONG iDevice;
117
118 /* Flags. Currently none are defined and the field must be initialized to 0. */
119 ULONG ulFlags;
120
121 /* Describes VRAM chunk for this display device. */
122 HGSMIAREA areaDisplay;
123
124 /* Size of the display information area. */
125 uint32_t u32DisplayInfoSize;
126
127 /* Minimum size of the VBVA buffer. */
128 uint32_t u32MinVBVABufferSize;
129
130 /* IO port to submit guest HGSMI commands. */
131 RTIOPORT IOPortGuestCommand;
132} QUERYHGSMIRESULT;
133
134/**
135 * Data returned by IOCTL_VIDEO_HGSMI_QUERY_CALLBACKS.
136 *
137 */
138typedef struct _HGSMIQUERYCALLBACKS
139{
140 HVBOXVIDEOHGSMI hContext;
141 PFNVBOXVIDEOHGSMICOMPLETION pfnCompletionHandler;
142 PFNVBOXVIDEOHGSMICOMMANDS pfnRequestCommandsHandler;
143} HGSMIQUERYCALLBACKS;
144
145/**
146 * Data returned by IOCTL_VIDEO_HGSMI_QUERY_PORTPROCS
147 */
148typedef struct _HGSMIQUERYCPORTPROCS
149{
150 PVOID pContext;
151 VBOXVIDEOPORTPROCS VideoPortProcs;
152} HGSMIQUERYCPORTPROCS;
153
154/**
155 * Data returned by IOCTL_VIDEO_HGSMI_HANDLER_ENABLE.
156 *
157 */
158typedef struct _HGSMIHANDLERENABLE
159{
160 uint8_t u8Channel;
161} HGSMIHANDLERENABLE;
162
163/**
164 * Data passed by IOCTL_VIDEO_HGSMI_HANDLER_DISABLE.
165 *
166 */
167typedef struct _HGSMIHANDLERDISABLE
168{
169 uint8_t u8Channel;
170} HGSMIHANDLERDISABLE;
171
172# ifdef VBOX_WITH_VIDEOHWACCEL
173typedef struct _VHWAQUERYINFO
174{
175 ULONG_PTR offVramBase;
176} VHWAQUERYINFO;
177# endif
178
179#endif /* VBOX_WITH_HGSMI */
180#pragma pack()
181
182#endif /* __VBOXIOCTL__H */
Note: See TracBrowser for help on using the repository browser.

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