VirtualBox

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

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

Automated rebranding to Oracle copyright/license strings via filemuncher

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 4.6 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 Oracle Corporation
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
19#ifndef __VBOXIOCTL__H
20#define __VBOXIOCTL__H
21
22#include <VBox/VMMDev.h>
23#include <VBox/VBoxGuest.h>
24
25#ifdef VBOX_WITH_HGSMI
26#include <VBox/HGSMI/HGSMI.h>
27#include "VBoxHGSMI.h"
28#endif /* VBOX_WITH_HGSMI */
29
30#define IOCTL_VIDEO_INTERPRET_DISPLAY_MEMORY \
31 CTL_CODE(FILE_DEVICE_VIDEO, 0x420, METHOD_BUFFERED, FILE_ANY_ACCESS)
32
33#define IOCTL_VIDEO_QUERY_DISPLAY_INFO \
34 CTL_CODE(FILE_DEVICE_VIDEO, 0x421, METHOD_BUFFERED, FILE_ANY_ACCESS)
35
36/** Called by the display driver when it is ready to
37 * switch to VBVA operation mode.
38 * Successful return means that VBVA can be used and
39 * output buffer contains VBVAENABLERESULT data.
40 * An error means that VBVA can not be used
41 * (disabled or not supported by the host).
42 */
43#define IOCTL_VIDEO_VBVA_ENABLE \
44 CTL_CODE(FILE_DEVICE_VIDEO, 0x400, METHOD_BUFFERED, FILE_ANY_ACCESS)
45
46#ifdef VBOX_WITH_HGSMI
47#define IOCTL_VIDEO_QUERY_HGSMI_INFO \
48 CTL_CODE(FILE_DEVICE_VIDEO, 0x430, METHOD_BUFFERED, FILE_ANY_ACCESS)
49
50#define IOCTL_VIDEO_HGSMI_QUERY_CALLBACKS \
51 CTL_CODE(FILE_DEVICE_VIDEO, 0x431, METHOD_BUFFERED, FILE_ANY_ACCESS)
52
53#define IOCTL_VIDEO_HGSMI_HANDLER_ENABLE \
54 CTL_CODE(FILE_DEVICE_VIDEO, 0x432, METHOD_BUFFERED, FILE_ANY_ACCESS)
55
56#define IOCTL_VIDEO_HGSMI_HANDLER_DISABLE \
57 CTL_CODE(FILE_DEVICE_VIDEO, 0x433, METHOD_BUFFERED, FILE_ANY_ACCESS)
58
59#define IOCTL_VIDEO_HGSMI_QUERY_PORTPROCS \
60 CTL_CODE(FILE_DEVICE_VIDEO, 0x434, METHOD_BUFFERED, FILE_ANY_ACCESS)
61
62#define IOCTL_VIDEO_VHWA_QUERY_INFO \
63 CTL_CODE(FILE_DEVICE_VIDEO, 0x435, METHOD_BUFFERED, FILE_ANY_ACCESS)
64
65#endif /* VBOX_WITH_HGSMI */
66
67#pragma pack(1)
68/**
69 * Data returned by IOCTL_VIDEO_VBVA_ENABLE.
70 *
71 */
72typedef struct _VBVAENABLERESULT
73{
74 /** Pointer to VBVAMemory part of VMMDev memory region. */
75 VBVAMEMORY *pVbvaMemory;
76
77 /** Called to force the host to process VBVA memory,
78 * when there is no more free space in VBVA memory.
79 * Normally this never happens.
80 *
81 * The other purpose is to perform a synchronous command.
82 * But the goal is to have no such commands at all.
83 */
84 DECLR0CALLBACKMEMBER(void, pfnFlush, (void *pvFlush));
85
86 /** Pointer required by the pfnFlush callback. */
87 void *pvFlush;
88
89} VBVAENABLERESULT;
90
91/**
92 * Data returned by IOCTL_VIDEO_QUERY_DISPLAY_INFO.
93 *
94 */
95typedef struct _QUERYDISPLAYINFORESULT
96{
97 /* Device index (0 for primary) */
98 ULONG iDevice;
99
100 /* Size of the display information area. */
101 uint32_t u32DisplayInfoSize;
102} QUERYDISPLAYINFORESULT;
103
104#ifdef VBOX_WITH_HGSMI
105/**
106 * Data returned by IOCTL_VIDEO_QUERY_HGSMI_INFO.
107 *
108 */
109typedef struct _QUERYHGSMIRESULT
110{
111 /* Device index (0 for primary) */
112 ULONG iDevice;
113
114 /* Flags. Currently none are defined and the field must be initialized to 0. */
115 ULONG ulFlags;
116
117 /* Describes VRAM chunk for this display device. */
118 HGSMIAREA areaDisplay;
119
120 /* Size of the display information area. */
121 uint32_t u32DisplayInfoSize;
122
123 /* Minimum size of the VBVA buffer. */
124 uint32_t u32MinVBVABufferSize;
125
126 /* IO port to submit guest HGSMI commands. */
127 RTIOPORT IOPortGuestCommand;
128} QUERYHGSMIRESULT;
129
130/**
131 * Data returned by IOCTL_VIDEO_HGSMI_QUERY_CALLBACKS.
132 *
133 */
134typedef struct _HGSMIQUERYCALLBACKS
135{
136 HVBOXVIDEOHGSMI hContext;
137 PFNVBOXVIDEOHGSMICOMPLETION pfnCompletionHandler;
138 PFNVBOXVIDEOHGSMICOMMANDS pfnRequestCommandsHandler;
139} HGSMIQUERYCALLBACKS;
140
141/**
142 * Data returned by IOCTL_VIDEO_HGSMI_QUERY_PORTPROCS
143 */
144typedef struct _HGSMIQUERYCPORTPROCS
145{
146 PVOID pContext;
147 VBOXVIDEOPORTPROCS VideoPortProcs;
148} HGSMIQUERYCPORTPROCS;
149
150/**
151 * Data returned by IOCTL_VIDEO_HGSMI_HANDLER_ENABLE.
152 *
153 */
154typedef struct _HGSMIHANDLERENABLE
155{
156 uint8_t u8Channel;
157} HGSMIHANDLERENABLE;
158
159/**
160 * Data passed by IOCTL_VIDEO_HGSMI_HANDLER_DISABLE.
161 *
162 */
163typedef struct _HGSMIHANDLERDISABLE
164{
165 uint8_t u8Channel;
166} HGSMIHANDLERDISABLE;
167
168# ifdef VBOX_WITH_VIDEOHWACCEL
169typedef struct _VHWAQUERYINFO
170{
171 ULONG_PTR offVramBase;
172} VHWAQUERYINFO;
173# endif
174
175#endif /* VBOX_WITH_HGSMI */
176#pragma pack()
177
178#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