[XDK]
[reactos.git] / include / ddk / ntddvdeo.h
1 /*
2 * ntddvdeo.h
3 *
4 * Definitions for video devices
5 *
6 * This file is part of the w32api package.
7 *
8 * Contributors:
9 * Created by Casper S. Hornstrup <chorns@users.sourceforge.net>
10 *
11 * THIS SOFTWARE IS NOT COPYRIGHTED
12 *
13 * This source code is offered for use in the public domain. You may
14 * use, modify or distribute it freely.
15 *
16 * This code is distributed in the hope that it will be useful but
17 * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
18 * DISCLAIMED. This includes but is not limited to warranties of
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
20 *
21 */
22
23 #ifndef __NTDDVDEO_H
24 #define __NTDDVDEO_H
25
26 #ifdef __cplusplus
27 extern "C" {
28 #endif
29
30 #define VIDEO_DEVICE_NAME "DISPLAY%d"
31 #define WVIDEO_DEVICE_NAME L"DISPLAY%d"
32
33 #define DD_FULLSCREEN_VIDEO_DEVICE_NAME L"\\Device\\FSVideo"
34
35 DEFINE_GUID(GUID_DEVINTERFACE_DISPLAY_ADAPTER, \
36 0x5b45201d, 0xf2f2, 0x4f3b, 0x85, 0xbb, 0x30, 0xff, 0x1f, 0x95, 0x35, 0x99);
37
38 #define IOCTL_VIDEO_ENABLE_VDM \
39 CTL_CODE(FILE_DEVICE_VIDEO, 0x00, METHOD_BUFFERED, FILE_ANY_ACCESS)
40
41 #define IOCTL_VIDEO_DISABLE_VDM \
42 CTL_CODE(FILE_DEVICE_VIDEO, 0x01, METHOD_BUFFERED, FILE_ANY_ACCESS)
43
44 #define IOCTL_VIDEO_REGISTER_VDM \
45 CTL_CODE(FILE_DEVICE_VIDEO, 0x02, METHOD_BUFFERED, FILE_ANY_ACCESS)
46
47 #define IOCTL_VIDEO_SET_OUTPUT_DEVICE_POWER_STATE \
48 CTL_CODE(FILE_DEVICE_VIDEO, 0x03, METHOD_BUFFERED, FILE_ANY_ACCESS)
49
50 #define IOCTL_VIDEO_GET_OUTPUT_DEVICE_POWER_STATE \
51 CTL_CODE(FILE_DEVICE_VIDEO, 0x04, METHOD_BUFFERED, FILE_ANY_ACCESS)
52
53 #define IOCTL_VIDEO_MONITOR_DEVICE \
54 CTL_CODE(FILE_DEVICE_VIDEO, 0x05, METHOD_BUFFERED, FILE_ANY_ACCESS)
55
56 #define IOCTL_VIDEO_ENUM_MONITOR_PDO \
57 CTL_CODE(FILE_DEVICE_VIDEO, 0x06, METHOD_BUFFERED, FILE_ANY_ACCESS)
58
59 #define IOCTL_VIDEO_INIT_WIN32K_CALLBACKS \
60 CTL_CODE(FILE_DEVICE_VIDEO, 0x07, METHOD_BUFFERED, FILE_ANY_ACCESS)
61
62 #define IOCTL_VIDEO_HANDLE_VIDEOPARAMETERS \
63 CTL_CODE(FILE_DEVICE_VIDEO, 0x08, METHOD_BUFFERED, FILE_ANY_ACCESS)
64
65 #define IOCTL_VIDEO_IS_VGA_DEVICE \
66 CTL_CODE(FILE_DEVICE_VIDEO, 0x09, METHOD_BUFFERED, FILE_ANY_ACCESS)
67
68 #define IOCTL_VIDEO_USE_DEVICE_IN_SESSION \
69 CTL_CODE(FILE_DEVICE_VIDEO, 0x0a, METHOD_BUFFERED, FILE_ANY_ACCESS)
70
71 #define IOCTL_VIDEO_PREPARE_FOR_EARECOVERY \
72 CTL_CODE(FILE_DEVICE_VIDEO, 0x0b, METHOD_BUFFERED, FILE_ANY_ACCESS)
73
74 #define IOCTL_VIDEO_DISABLE_CURSOR \
75 CTL_CODE (FILE_DEVICE_VIDEO, 0x109, METHOD_BUFFERED, FILE_ANY_ACCESS)
76
77 #define IOCTL_VIDEO_DISABLE_POINTER \
78 CTL_CODE(FILE_DEVICE_VIDEO, 0x10f, METHOD_BUFFERED, FILE_ANY_ACCESS)
79
80 #define IOCTL_VIDEO_ENABLE_CURSOR \
81 CTL_CODE(FILE_DEVICE_VIDEO, 0x108, METHOD_BUFFERED, FILE_ANY_ACCESS)
82
83 #define IOCTL_VIDEO_ENABLE_POINTER \
84 CTL_CODE(FILE_DEVICE_VIDEO, 0x10e, METHOD_BUFFERED, FILE_ANY_ACCESS)
85
86 #define IOCTL_VIDEO_FREE_PUBLIC_ACCESS_RANGES \
87 CTL_CODE(FILE_DEVICE_VIDEO, 0x119, METHOD_BUFFERED, FILE_ANY_ACCESS)
88
89 #define IOCTL_VIDEO_GET_BANK_SELECT_CODE \
90 CTL_CODE(FILE_DEVICE_VIDEO, 0x115, METHOD_BUFFERED, FILE_ANY_ACCESS)
91
92 #define IOCTL_VIDEO_GET_CHILD_STATE \
93 CTL_CODE(FILE_DEVICE_VIDEO, 0x120, METHOD_BUFFERED, FILE_ANY_ACCESS)
94
95 #define IOCTL_VIDEO_GET_POWER_MANAGEMENT \
96 CTL_CODE(FILE_DEVICE_VIDEO, 0x11c, METHOD_BUFFERED, FILE_ANY_ACCESS)
97
98 #define IOCTL_VIDEO_LOAD_AND_SET_FONT \
99 CTL_CODE(FILE_DEVICE_VIDEO, 0x105, METHOD_BUFFERED, FILE_ANY_ACCESS)
100
101 #define IOCTL_VIDEO_MAP_VIDEO_MEMORY \
102 CTL_CODE(FILE_DEVICE_VIDEO, 0x116, METHOD_BUFFERED, FILE_ANY_ACCESS)
103
104 #define IOCTL_VIDEO_QUERY_AVAIL_MODES \
105 CTL_CODE(FILE_DEVICE_VIDEO, 0x100, METHOD_BUFFERED, FILE_ANY_ACCESS)
106
107 #define IOCTL_VIDEO_QUERY_COLOR_CAPABILITIES \
108 CTL_CODE(FILE_DEVICE_VIDEO, 0x11a, METHOD_BUFFERED, FILE_ANY_ACCESS)
109
110 #define IOCTL_VIDEO_QUERY_CURRENT_MODE \
111 CTL_CODE(FILE_DEVICE_VIDEO, 0x102, METHOD_BUFFERED, FILE_ANY_ACCESS)
112
113 #define IOCTL_VIDEO_QUERY_CURSOR_ATTR \
114 CTL_CODE(FILE_DEVICE_VIDEO, 0x10b, METHOD_BUFFERED, FILE_ANY_ACCESS)
115
116 #define IOCTL_VIDEO_QUERY_CURSOR_POSITION \
117 CTL_CODE(FILE_DEVICE_VIDEO, 0x10d, METHOD_BUFFERED, FILE_ANY_ACCESS)
118
119 #define IOCTL_VIDEO_QUERY_NUM_AVAIL_MODES \
120 CTL_CODE(FILE_DEVICE_VIDEO, 0x101, METHOD_BUFFERED, FILE_ANY_ACCESS)
121
122 #define IOCTL_VIDEO_QUERY_POINTER_ATTR \
123 CTL_CODE(FILE_DEVICE_VIDEO, 0x111, METHOD_BUFFERED, FILE_ANY_ACCESS)
124
125 #define IOCTL_VIDEO_QUERY_POINTER_CAPABILITIES \
126 CTL_CODE(FILE_DEVICE_VIDEO, 0x114, METHOD_BUFFERED, FILE_ANY_ACCESS)
127
128 #define IOCTL_VIDEO_QUERY_POINTER_POSITION \
129 CTL_CODE(FILE_DEVICE_VIDEO, 0x113, METHOD_BUFFERED, FILE_ANY_ACCESS)
130
131 #define IOCTL_VIDEO_QUERY_PUBLIC_ACCESS_RANGES \
132 CTL_CODE(FILE_DEVICE_VIDEO, 0x118, METHOD_BUFFERED, FILE_ANY_ACCESS)
133
134 #define IOCTL_VIDEO_RESET_DEVICE \
135 CTL_CODE(FILE_DEVICE_VIDEO, 0x104, METHOD_BUFFERED, FILE_ANY_ACCESS)
136
137 #define IOCTL_VIDEO_RESTORE_HARDWARE_STATE \
138 CTL_CODE(FILE_DEVICE_VIDEO, 0x81, METHOD_BUFFERED, FILE_ANY_ACCESS)
139
140 #define IOCTL_VIDEO_SAVE_HARDWARE_STATE \
141 CTL_CODE(FILE_DEVICE_VIDEO, 0x80, METHOD_BUFFERED, FILE_ANY_ACCESS)
142
143 #define IOCTL_VIDEO_SET_CHILD_STATE_CONFIGURATION \
144 CTL_CODE(FILE_DEVICE_VIDEO, 0x122, METHOD_BUFFERED, FILE_ANY_ACCESS)
145
146 #define IOCTL_VIDEO_SET_COLOR_REGISTERS \
147 CTL_CODE(FILE_DEVICE_VIDEO, 0x107, METHOD_BUFFERED, FILE_ANY_ACCESS)
148
149 #define IOCTL_VIDEO_SET_CURRENT_MODE \
150 CTL_CODE(FILE_DEVICE_VIDEO, 0x103, METHOD_BUFFERED, FILE_ANY_ACCESS)
151
152 #define IOCTL_VIDEO_SET_CURSOR_ATTR \
153 CTL_CODE(FILE_DEVICE_VIDEO, 0x10a, METHOD_BUFFERED, FILE_ANY_ACCESS)
154
155 #define IOCTL_VIDEO_SET_CURSOR_POSITION \
156 CTL_CODE(FILE_DEVICE_VIDEO, 0x10c, METHOD_BUFFERED, FILE_ANY_ACCESS)
157
158 #define IOCTL_VIDEO_SET_PALETTE_REGISTERS \
159 CTL_CODE(FILE_DEVICE_VIDEO, 0x106, METHOD_BUFFERED, FILE_ANY_ACCESS)
160
161 #define IOCTL_VIDEO_SET_POINTER_ATTR \
162 CTL_CODE(FILE_DEVICE_VIDEO, 0x110, METHOD_BUFFERED, FILE_ANY_ACCESS)
163
164 #define IOCTL_VIDEO_SET_POINTER_POSITION \
165 CTL_CODE(FILE_DEVICE_VIDEO, 0x112, METHOD_BUFFERED, FILE_ANY_ACCESS)
166
167 #define IOCTL_VIDEO_SET_POWER_MANAGEMENT \
168 CTL_CODE(FILE_DEVICE_VIDEO, 0x11b, METHOD_BUFFERED, FILE_ANY_ACCESS)
169
170 #define IOCTL_VIDEO_SHARE_VIDEO_MEMORY \
171 CTL_CODE(FILE_DEVICE_VIDEO, 0x11d, METHOD_BUFFERED, FILE_ANY_ACCESS)
172
173 #define IOCTL_VIDEO_SWITCH_DUALVIEW \
174 CTL_CODE(FILE_DEVICE_VIDEO, 0x123, METHOD_BUFFERED, FILE_ANY_ACCESS)
175
176 #define IOCTL_VIDEO_UNMAP_VIDEO_MEMORY \
177 CTL_CODE(FILE_DEVICE_VIDEO, 0x117, METHOD_BUFFERED, FILE_ANY_ACCESS)
178
179 #define IOCTL_VIDEO_UNSHARE_VIDEO_MEMORY \
180 CTL_CODE(FILE_DEVICE_VIDEO, 0x11e, METHOD_BUFFERED, FILE_ANY_ACCESS)
181
182 #define IOCTL_VIDEO_VALIDATE_CHILD_STATE_CONFIGURATION \
183 CTL_CODE(FILE_DEVICE_VIDEO, 0x121, METHOD_BUFFERED, FILE_ANY_ACCESS)
184
185
186
187 typedef struct _VIDEO_MEMORY {
188 PVOID RequestedVirtualAddress;
189 } VIDEO_MEMORY, *PVIDEO_MEMORY;
190
191 typedef struct _VIDEO_MEMORY_INFORMATION {
192 PVOID VideoRamBase;
193 ULONG VideoRamLength;
194 PVOID FrameBufferBase;
195 ULONG FrameBufferLength;
196 } VIDEO_MEMORY_INFORMATION, *PVIDEO_MEMORY_INFORMATION;
197
198 /* VIDEO_MODE.RequestedMode */
199 #define VIDEO_MODE_MAP_MEM_LINEAR 0x40000000
200 #define VIDEO_MODE_NO_ZERO_MEMORY 0x80000000
201
202 typedef struct _VIDEO_MODE {
203 ULONG RequestedMode;
204 } VIDEO_MODE, *PVIDEO_MODE;
205
206 /* VIDEO_MODE_INFORMATION.AttributeFlags */
207 #define VIDEO_MODE_COLOR 0x0001
208 #define VIDEO_MODE_GRAPHICS 0x0002
209 #define VIDEO_MODE_PALETTE_DRIVEN 0x0004
210 #define VIDEO_MODE_MANAGED_PALETTE 0x0008
211 #define VIDEO_MODE_INTERLACED 0x0010
212 #define VIDEO_MODE_NO_OFF_SCREEN 0x0020
213 #define VIDEO_MODE_NO_64_BIT_ACCESS 0x0040
214 #define VIDEO_MODE_BANKED 0x0080
215 #define VIDEO_MODE_LINEAR 0x0100
216
217 typedef struct _VIDEO_MODE_INFORMATION {
218 ULONG Length;
219 ULONG ModeIndex;
220 ULONG VisScreenWidth;
221 ULONG VisScreenHeight;
222 ULONG ScreenStride;
223 ULONG NumberOfPlanes;
224 ULONG BitsPerPlane;
225 ULONG Frequency;
226 ULONG XMillimeter;
227 ULONG YMillimeter;
228 ULONG NumberRedBits;
229 ULONG NumberGreenBits;
230 ULONG NumberBlueBits;
231 ULONG RedMask;
232 ULONG GreenMask;
233 ULONG BlueMask;
234 ULONG AttributeFlags;
235 ULONG VideoMemoryBitmapWidth;
236 ULONG VideoMemoryBitmapHeight;
237 ULONG DriverSpecificAttributeFlags;
238 } VIDEO_MODE_INFORMATION, *PVIDEO_MODE_INFORMATION;
239
240 typedef struct _VIDEO_NUM_MODES {
241 ULONG NumModes;
242 ULONG ModeInformationLength;
243 } VIDEO_NUM_MODES, *PVIDEO_NUM_MODES;
244
245 typedef enum _VIDEO_POWER_STATE {
246 VideoPowerUnspecified = 0,
247 VideoPowerOn = 1,
248 VideoPowerStandBy,
249 VideoPowerSuspend,
250 VideoPowerOff,
251 VideoPowerHibernate,
252 VideoPowerShutdown,
253 VideoPowerMaximum
254 } VIDEO_POWER_STATE, *PVIDEO_POWER_STATE;
255
256 typedef struct _VIDEO_POWER_MANAGEMENT {
257 ULONG Length;
258 ULONG DPMSVersion;
259 ULONG PowerState;
260 } VIDEO_POWER_MANAGEMENT, *PVIDEO_POWER_MANAGEMENT;
261
262 typedef struct _VIDEO_PUBLIC_ACCESS_RANGES {
263 ULONG InIoSpace;
264 ULONG MappedInIoSpace;
265 PVOID VirtualAddress;
266 } VIDEO_PUBLIC_ACCESS_RANGES, *PVIDEO_PUBLIC_ACCESS_RANGES;
267
268 typedef struct _VIDEO_SHARE_MEMORY {
269 HANDLE ProcessHandle;
270 ULONG ViewOffset;
271 ULONG ViewSize;
272 PVOID RequestedVirtualAddress;
273 } VIDEO_SHARE_MEMORY, *PVIDEO_SHARE_MEMORY;
274
275 typedef struct _VIDEO_SHARE_MEMORY_INFORMATION {
276 ULONG SharedViewOffset;
277 ULONG SharedViewSize;
278 PVOID VirtualAddress;
279 } VIDEO_SHARE_MEMORY_INFORMATION, *PVIDEO_SHARE_MEMORY_INFORMATION;
280
281 /* VIDEO_BANK_SELECT.BankingFlags constants */
282 #define PLANAR_HC 0x00000001
283
284 /* VIDEO_BANK_SELECT.BankingType and PlanarHCBankingType constants */
285 typedef enum _VIDEO_BANK_TYPE {
286 VideoNotBanked = 0,
287 VideoBanked1RW,
288 VideoBanked1R1W,
289 VideoBanked2RW,
290 NumVideoBankTypes
291 } VIDEO_BANK_TYPE, *PVIDEO_BANK_TYPE;
292
293 typedef struct _VIDEO_BANK_SELECT {
294 ULONG Length;
295 ULONG Size;
296 ULONG BankingFlags;
297 ULONG BankingType;
298 ULONG PlanarHCBankingType;
299 ULONG BitmapWidthInBytes;
300 ULONG BitmapSize;
301 ULONG Granularity;
302 ULONG PlanarHCGranularity;
303 ULONG CodeOffset;
304 ULONG PlanarHCBankCodeOffset;
305 ULONG PlanarHCEnableCodeOffset;
306 ULONG PlanarHCDisableCodeOffset;
307 } VIDEO_BANK_SELECT, *PVIDEO_BANK_SELECT;
308
309 typedef struct _VIDEO_LOAD_FONT_INFORMATION {
310 USHORT WidthInPixels;
311 USHORT HeightInPixels;
312 ULONG FontSize;
313 UCHAR Font[1];
314 } VIDEO_LOAD_FONT_INFORMATION, *PVIDEO_LOAD_FONT_INFORMATION;
315
316 /* VIDEO_COLOR_CAPABILITIES.AttributeFlags constants */
317 #define VIDEO_DEVICE_COLOR 0x00000001
318 #define VIDEO_OPTIONAL_GAMMET_TABLE 0x00000002
319
320 typedef struct _VIDEO_COLOR_CAPABILITIES {
321 ULONG Length;
322 ULONG AttributeFlags;
323 LONG RedPhosphoreDecay;
324 LONG GreenPhosphoreDecay;
325 LONG BluePhosphoreDecay;
326 LONG WhiteChromaticity_x;
327 LONG WhiteChromaticity_y;
328 LONG WhiteChromaticity_Y;
329 LONG RedChromaticity_x;
330 LONG RedChromaticity_y;
331 LONG GreenChromaticity_x;
332 LONG GreenChromaticity_y;
333 LONG BlueChromaticity_x;
334 LONG BlueChromaticity_y;
335 LONG WhiteGamma;
336 LONG RedGamma;
337 LONG GreenGamma;
338 LONG BlueGamma;
339 } VIDEO_COLOR_CAPABILITIES, *PVIDEO_COLOR_CAPABILITIES;
340
341 typedef struct _VIDEO_CURSOR_ATTRIBUTES {
342 USHORT Width;
343 USHORT Height;
344 SHORT Column;
345 SHORT Row;
346 UCHAR Rate;
347 UCHAR Enable;
348 } VIDEO_CURSOR_ATTRIBUTES, *PVIDEO_CURSOR_ATTRIBUTES;
349
350 typedef struct _VIDEO_CURSOR_POSITION {
351 SHORT Column;
352 SHORT Row;
353 } VIDEO_CURSOR_POSITION, *PVIDEO_CURSOR_POSITION;
354
355 typedef struct _VIDEO_POINTER_ATTRIBUTES {
356 ULONG Flags;
357 ULONG Width;
358 ULONG Height;
359 ULONG WidthInBytes;
360 ULONG Enable;
361 SHORT Column;
362 SHORT Row;
363 UCHAR Pixels[1];
364 } VIDEO_POINTER_ATTRIBUTES, *PVIDEO_POINTER_ATTRIBUTES;
365
366 /* VIDEO_POINTER_CAPABILITIES.Flags */
367 #define VIDEO_MODE_ASYNC_POINTER 0x01
368 #define VIDEO_MODE_MONO_POINTER 0x02
369 #define VIDEO_MODE_COLOR_POINTER 0x04
370 #define VIDEO_MODE_ANIMATE_START 0x08
371 #define VIDEO_MODE_ANIMATE_UPDATE 0x10
372
373 typedef struct _VIDEO_POINTER_CAPABILITIES {
374 ULONG Flags;
375 ULONG MaxWidth;
376 ULONG MaxHeight;
377 ULONG HWPtrBitmapStart;
378 ULONG HWPtrBitmapEnd;
379 } VIDEO_POINTER_CAPABILITIES, *PVIDEO_POINTER_CAPABILITIES;
380
381 typedef struct _VIDEO_POINTER_POSITION {
382 SHORT Column;
383 SHORT Row;
384 } VIDEO_POINTER_POSITION, *PVIDEO_POINTER_POSITION;
385
386
387 /* VIDEO_HARDWARE_STATE_HEADER.VGAStateFlags constants */
388 #define VIDEO_STATE_NON_STANDARD_VGA 0x00000001
389 #define VIDEO_STATE_UNEMULATED_VGA_STATE 0x00000002
390 #define VIDEO_STATE_PACKED_CHAIN4_MODE 0x00000004
391
392 typedef struct _VIDEO_HARDWARE_STATE_HEADER {
393 ULONG Length;
394 UCHAR PortValue[0x30];
395 ULONG AttribIndexDataState;
396 ULONG BasicSequencerOffset;
397 ULONG BasicCrtContOffset;
398 ULONG BasicGraphContOffset;
399 ULONG BasicAttribContOffset;
400 ULONG BasicDacOffset;
401 ULONG BasicLatchesOffset;
402 ULONG ExtendedSequencerOffset;
403 ULONG ExtendedCrtContOffset;
404 ULONG ExtendedGraphContOffset;
405 ULONG ExtendedAttribContOffset;
406 ULONG ExtendedDacOffset;
407 ULONG ExtendedValidatorStateOffset;
408 ULONG ExtendedMiscDataOffset;
409 ULONG PlaneLength;
410 ULONG Plane1Offset;
411 ULONG Plane2Offset;
412 ULONG Plane3Offset;
413 ULONG Plane4Offset;
414 ULONG VGAStateFlags;
415 ULONG DIBOffset;
416 ULONG DIBBitsPerPixel;
417 ULONG DIBXResolution;
418 ULONG DIBYResolution;
419 ULONG DIBXlatOffset;
420 ULONG DIBXlatLength;
421 ULONG VesaInfoOffset;
422 PVOID FrameBufferData;
423 } VIDEO_HARDWARE_STATE_HEADER, *PVIDEO_HARDWARE_STATE_HEADER;
424
425 typedef struct _VIDEO_CLUTDATA {
426 UCHAR Red;
427 UCHAR Green;
428 UCHAR Blue;
429 UCHAR Unused;
430 } VIDEO_CLUTDATA, *PVIDEO_CLUTDATA;
431
432 typedef struct {
433 USHORT NumEntries;
434 USHORT FirstEntry;
435 union {
436 VIDEO_CLUTDATA RgbArray;
437 ULONG RgbLong;
438 } LookupTable[1];
439 } VIDEO_CLUT, *PVIDEO_CLUT;
440
441 typedef struct _VIDEO_PALETTE_DATA {
442 USHORT NumEntries;
443 USHORT FirstEntry;
444 USHORT Colors[1];
445 } VIDEO_PALETTE_DATA, *PVIDEO_PALETTE_DATA;
446
447 typedef struct _VIDEO_HARDWARE_STATE {
448 PVIDEO_HARDWARE_STATE_HEADER StateHeader;
449 ULONG StateLength;
450 } VIDEO_HARDWARE_STATE, *PVIDEO_HARDWARE_STATE;
451
452 #define VIDEO_CHILD_ACTIVE 0x00000001
453 #define VIDEO_CHILD_DETACHED 0x00000002
454 #define VIDEO_CHILD_NOPRUNE_FREQ 0x80000000
455 #define VIDEO_CHILD_NOPRUNE_RESOLUTION 0x40000000
456
457 #define VIDEO_DUALVIEW_REMOVABLE 0x00000001
458 #define VIDEO_DUALVIEW_PRIMARY 0x80000000
459 #define VIDEO_DUALVIEW_SECONDARY 0x40000000
460
461 #ifndef _WINDDI_
462 typedef struct _ENG_EVENT *PEVENT;
463 #endif
464
465 typedef struct _ENG_EVENT
466 {
467 PVOID pKEvent;
468 ULONG fFlags;
469 } ENG_EVENT, *PENG_EVENT;
470
471
472 #ifdef __cplusplus
473 }
474 #endif
475
476 #endif /* __NTDDVDEO_H */