VirtualBox

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

Last change on this file since 33223 was 33048, checked in by vboxsync, 14 years ago

Additions/WINNT/Graphics: make VBOX_WITH_HGSMI conditional code unconditional

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 4.5 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#include <VBox/HGSMI/HGSMI.h>
26#include "VBoxHGSMI.h"
27
28#define IOCTL_VIDEO_INTERPRET_DISPLAY_MEMORY \
29 CTL_CODE(FILE_DEVICE_VIDEO, 0x420, METHOD_BUFFERED, FILE_ANY_ACCESS)
30
31#define IOCTL_VIDEO_QUERY_DISPLAY_INFO \
32 CTL_CODE(FILE_DEVICE_VIDEO, 0x421, METHOD_BUFFERED, FILE_ANY_ACCESS)
33
34/** Called by the display driver when it is ready to
35 * switch to VBVA operation mode.
36 * Successful return means that VBVA can be used and
37 * output buffer contains VBVAENABLERESULT data.
38 * An error means that VBVA can not be used
39 * (disabled or not supported by the host).
40 */
41#define IOCTL_VIDEO_VBVA_ENABLE \
42 CTL_CODE(FILE_DEVICE_VIDEO, 0x400, METHOD_BUFFERED, FILE_ANY_ACCESS)
43
44#define IOCTL_VIDEO_QUERY_HGSMI_INFO \
45 CTL_CODE(FILE_DEVICE_VIDEO, 0x430, METHOD_BUFFERED, FILE_ANY_ACCESS)
46
47#define IOCTL_VIDEO_HGSMI_QUERY_CALLBACKS \
48 CTL_CODE(FILE_DEVICE_VIDEO, 0x431, METHOD_BUFFERED, FILE_ANY_ACCESS)
49
50#define IOCTL_VIDEO_HGSMI_HANDLER_ENABLE \
51 CTL_CODE(FILE_DEVICE_VIDEO, 0x432, METHOD_BUFFERED, FILE_ANY_ACCESS)
52
53#define IOCTL_VIDEO_HGSMI_HANDLER_DISABLE \
54 CTL_CODE(FILE_DEVICE_VIDEO, 0x433, METHOD_BUFFERED, FILE_ANY_ACCESS)
55
56#define IOCTL_VIDEO_HGSMI_QUERY_PORTPROCS \
57 CTL_CODE(FILE_DEVICE_VIDEO, 0x434, METHOD_BUFFERED, FILE_ANY_ACCESS)
58
59#define IOCTL_VIDEO_VHWA_QUERY_INFO \
60 CTL_CODE(FILE_DEVICE_VIDEO, 0x435, METHOD_BUFFERED, FILE_ANY_ACCESS)
61
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/**
101 * Data returned by IOCTL_VIDEO_QUERY_HGSMI_INFO.
102 *
103 */
104typedef struct _QUERYHGSMIRESULT
105{
106 /* Device index (0 for primary) */
107 ULONG iDevice;
108
109 /* Flags. Currently none are defined and the field must be initialized to 0. */
110 ULONG ulFlags;
111
112 /* Describes VRAM chunk for this display device. */
113 HGSMIAREA areaDisplay;
114
115 /* Size of the display information area. */
116 uint32_t u32DisplayInfoSize;
117
118 /* Minimum size of the VBVA buffer. */
119 uint32_t u32MinVBVABufferSize;
120
121 /* IO port to submit guest HGSMI commands. */
122 RTIOPORT IOPortGuestCommand;
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_QUERY_PORTPROCS
138 */
139typedef struct _HGSMIQUERYCPORTPROCS
140{
141 PVOID pContext;
142 VBOXVIDEOPORTPROCS VideoPortProcs;
143} HGSMIQUERYCPORTPROCS;
144
145/**
146 * Data returned by IOCTL_VIDEO_HGSMI_HANDLER_ENABLE.
147 *
148 */
149typedef struct _HGSMIHANDLERENABLE
150{
151 uint8_t u8Channel;
152} HGSMIHANDLERENABLE;
153
154/**
155 * Data passed by IOCTL_VIDEO_HGSMI_HANDLER_DISABLE.
156 *
157 */
158typedef struct _HGSMIHANDLERDISABLE
159{
160 uint8_t u8Channel;
161} HGSMIHANDLERDISABLE;
162
163#ifdef VBOX_WITH_VIDEOHWACCEL
164typedef struct _VHWAQUERYINFO
165{
166 ULONG_PTR offVramBase;
167} VHWAQUERYINFO;
168#endif
169
170#pragma pack()
171
172#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