VirtualBox

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

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

VBoxGuest.h/VMMDev.h/VBoxGuestLib.h usage cleanup.

  • 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 * 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#endif /* VBOX_WITH_HGSMI */
64
65#pragma pack(1)
66/**
67 * Data returned by IOCTL_VIDEO_VBVA_ENABLE.
68 *
69 */
70typedef struct _VBVAENABLERESULT
71{
72 /** Pointer to VBVAMemory part of VMMDev memory region. */
73 VBVAMEMORY *pVbvaMemory;
74
75 /** Called to force the host to process VBVA memory,
76 * when there is no more free space in VBVA memory.
77 * Normally this never happens.
78 *
79 * The other purpose is to perform a synchronous command.
80 * But the goal is to have no such commands at all.
81 */
82 DECLR0CALLBACKMEMBER(void, pfnFlush, (void *pvFlush));
83
84 /** Pointer required by the pfnFlush callback. */
85 void *pvFlush;
86
87} VBVAENABLERESULT;
88
89/**
90 * Data returned by IOCTL_VIDEO_QUERY_DISPLAY_INFO.
91 *
92 */
93typedef struct _QUERYDISPLAYINFORESULT
94{
95 /* Device index (0 for primary) */
96 ULONG iDevice;
97
98 /* Size of the display information area. */
99 uint32_t u32DisplayInfoSize;
100} QUERYDISPLAYINFORESULT;
101
102#ifdef VBOX_WITH_HGSMI
103/**
104 * Data returned by IOCTL_VIDEO_QUERY_HGSMI_INFO.
105 *
106 */
107typedef struct _QUERYHGSMIRESULT
108{
109 /* Device index (0 for primary) */
110 ULONG iDevice;
111
112 /* Flags. Currently none are defined and the field must be initialized to 0. */
113 ULONG ulFlags;
114
115 /* Describes VRAM chunk for this display device. */
116 HGSMIAREA areaDisplay;
117
118 /* Size of the display information area. */
119 uint32_t u32DisplayInfoSize;
120
121 /* Minimum size of the VBAV buffer. */
122 uint32_t u32MinVBVABufferSize;
123} QUERYHGSMIRESULT;
124
125/**
126 * Data returned by IOCTL_VIDEO_HGSMI_QUERY_CALLBACKS.
127 *
128 */
129typedef struct _HGSMIQUERYCALLBACKS
130{
131 HVBOXVIDEOHGSMI hContext;
132 PFNVBOXVIDEOHGSMICOMPLETION pfnCompletionHandler;
133 PFNVBOXVIDEOHGSMICOMMANDS pfnRequestCommandsHandler;
134} HGSMIQUERYCALLBACKS;
135
136/**
137 * Data returned by IOCTL_VIDEO_HGSMI_HANDLER_ENABLE.
138 *
139 */
140typedef struct _HGSMIHANDLERENABLE
141{
142 uint8_t u8Channel;
143} HGSMIHANDLERENABLE;
144
145/**
146 * Data passed by IOCTL_VIDEO_HGSMI_HANDLER_DISABLE.
147 *
148 */
149typedef struct _HGSMIHANDLERDISABLE
150{
151 uint8_t u8Channel;
152} HGSMIHANDLERDISABLE;
153
154#endif /* VBOX_WITH_HGSMI */
155#pragma pack()
156
157#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