VirtualBox

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

Last change on this file since 20478 was 20478, checked in by vboxsync, 16 years ago

video hw accel: guest driver -> host framebuffer commands processing impl

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