VirtualBox

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

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

Shared memory host guest interface (HGSMI) for the graphics device: the windows guest video driver prototype code.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 3.1 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#endif /* VBOX_WITH_HGSMI */
30
31#define IOCTL_VIDEO_INTERPRET_DISPLAY_MEMORY \
32 CTL_CODE(FILE_DEVICE_VIDEO, 0x420, METHOD_BUFFERED, FILE_ANY_ACCESS)
33
34#define IOCTL_VIDEO_QUERY_DISPLAY_INFO \
35 CTL_CODE(FILE_DEVICE_VIDEO, 0x421, METHOD_BUFFERED, FILE_ANY_ACCESS)
36
37/** Called by the display driver when it is ready to
38 * switch to VBVA operation mode.
39 * Successful return means that VBVA can be used and
40 * output buffer contains VBVAENABLERESULT data.
41 * An error means that VBVA can not be used
42 * (disabled or not supported by the host).
43 */
44#define IOCTL_VIDEO_VBVA_ENABLE \
45 CTL_CODE(FILE_DEVICE_VIDEO, 0x400, METHOD_BUFFERED, FILE_ANY_ACCESS)
46
47#ifdef VBOX_WITH_HGSMI
48#define IOCTL_VIDEO_QUERY_HGSMI_INFO \
49 CTL_CODE(FILE_DEVICE_VIDEO, 0x430, METHOD_BUFFERED, FILE_ANY_ACCESS)
50#endif /* VBOX_WITH_HGSMI */
51
52#pragma pack(1)
53/**
54 * Data returned by IOCTL_VIDEO_VBVA_ENABLE.
55 *
56 */
57typedef struct _VBVAENABLERESULT
58{
59 /** Pointer to VBVAMemory part of VMMDev memory region. */
60 VBVAMEMORY *pVbvaMemory;
61
62 /** Called to force the host to process VBVA memory,
63 * when there is no more free space in VBVA memory.
64 * Normally this never happens.
65 *
66 * The other purpose is to perform a synchronous command.
67 * But the goal is to have no such commands at all.
68 */
69 DECLR0CALLBACKMEMBER(void, pfnFlush, (void *pvFlush));
70
71 /** Pointer required by the pfnFlush callback. */
72 void *pvFlush;
73
74} VBVAENABLERESULT;
75
76/**
77 * Data returned by IOCTL_VIDEO_QUERY_DISPLAY_INFO.
78 *
79 */
80typedef struct _QUERYDISPLAYINFORESULT
81{
82 /* Device index (0 for primary) */
83 ULONG iDevice;
84
85 /* Size of the display information area. */
86 uint32_t u32DisplayInfoSize;
87} QUERYDISPLAYINFORESULT;
88
89#ifdef VBOX_WITH_HGSMI
90/**
91 * Data returned by IOCTL_VIDEO_QUERY_HGSMI_INFO.
92 *
93 */
94typedef struct _QUERYHGSMIRESULT
95{
96 /* Device index (0 for primary) */
97 ULONG iDevice;
98
99 /* Flags. Currently none are defined and the field must be initialized to 0. */
100 ULONG ulFlags;
101
102 /* Describes VRAM chunk for this display device. */
103 HGSMIAREA areaDisplay;
104
105} QUERYHGSMIRESULT;
106#endif /* VBOX_WITH_HGSMI */
107#pragma pack()
108
109#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