--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mingw-5.1.4/win32/include/ddk/ntddvdeo.h Fri Apr 03 17:16:45 2009 +0100
@@ -0,0 +1,440 @@
+/*
+ * ntddvdeo.h
+ *
+ * Definitions for video devices
+ *
+ * This file is part of the w32api package.
+ *
+ * Contributors:
+ * Created by Casper S. Hornstrup <chorns@users.sourceforge.net>
+ *
+ * THIS SOFTWARE IS NOT COPYRIGHTED
+ *
+ * This source code is offered for use in the public domain. You may
+ * use, modify or distribute it freely.
+ *
+ * This code is distributed in the hope that it will be useful but
+ * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
+ * DISCLAIMED. This includes but is not limited to warranties of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ */
+
+#ifndef __NTDDVDEO_H
+#define __NTDDVDEO_H
+
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include "ntddk.h"
+
+
+#define VIDEO_DEVICE_NAME "DISPLAY%d"
+#define WVIDEO_DEVICE_NAME L"DISPLAY%d"
+
+#define DD_FULLSCREEN_VIDEO_DEVICE_NAME L"\\Device\\FSVideo"
+
+DEFINE_GUID(GUID_DEVINTERFACE_DISPLAY_ADAPTER, \
+ 0x5b45201d, 0xf2f2, 0x4f3b, 0x85, 0xbb, 0x30, 0xff, 0x1f, 0x95, 0x35, 0x99);
+
+
+#define IOCTL_VIDEO_DISABLE_CURSOR \
+ CTL_CODE (FILE_DEVICE_VIDEO, 0x109, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_VIDEO_DISABLE_POINTER \
+ CTL_CODE(FILE_DEVICE_VIDEO, 0x10f, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_VIDEO_ENABLE_CURSOR \
+ CTL_CODE(FILE_DEVICE_VIDEO, 0x108, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_VIDEO_ENABLE_POINTER \
+ CTL_CODE(FILE_DEVICE_VIDEO, 0x10e, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_VIDEO_FREE_PUBLIC_ACCESS_RANGES \
+ CTL_CODE(FILE_DEVICE_VIDEO, 0x119, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_VIDEO_GET_BANK_SELECT_CODE \
+ CTL_CODE(FILE_DEVICE_VIDEO, 0x115, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_VIDEO_GET_CHILD_STATE \
+ CTL_CODE(FILE_DEVICE_VIDEO, 0x120, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_VIDEO_GET_POWER_MANAGEMENT \
+ CTL_CODE(FILE_DEVICE_VIDEO, 0x11c, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_VIDEO_HANDLE_VIDEOPARAMETERS \
+ CTL_CODE(FILE_DEVICE_VIDEO, 0x08, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_VIDEO_LOAD_AND_SET_FONT \
+ CTL_CODE(FILE_DEVICE_VIDEO, 0x105, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_VIDEO_MAP_VIDEO_MEMORY \
+ CTL_CODE(FILE_DEVICE_VIDEO, 0x116, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_VIDEO_QUERY_AVAIL_MODES \
+ CTL_CODE(FILE_DEVICE_VIDEO, 0x100, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_VIDEO_QUERY_COLOR_CAPABILITIES \
+ CTL_CODE(FILE_DEVICE_VIDEO, 0x11a, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_VIDEO_QUERY_CURRENT_MODE \
+ CTL_CODE(FILE_DEVICE_VIDEO, 0x102, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_VIDEO_QUERY_CURSOR_ATTR \
+ CTL_CODE(FILE_DEVICE_VIDEO, 0x10b, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_VIDEO_QUERY_CURSOR_POSITION \
+ CTL_CODE(FILE_DEVICE_VIDEO, 0x10d, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_VIDEO_QUERY_NUM_AVAIL_MODES \
+ CTL_CODE(FILE_DEVICE_VIDEO, 0x101, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_VIDEO_QUERY_POINTER_ATTR \
+ CTL_CODE(FILE_DEVICE_VIDEO, 0x111, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_VIDEO_QUERY_POINTER_CAPABILITIES \
+ CTL_CODE(FILE_DEVICE_VIDEO, 0x114, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_VIDEO_QUERY_POINTER_POSITION \
+ CTL_CODE(FILE_DEVICE_VIDEO, 0x113, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_VIDEO_QUERY_PUBLIC_ACCESS_RANGES \
+ CTL_CODE(FILE_DEVICE_VIDEO, 0x118, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_VIDEO_RESET_DEVICE \
+ CTL_CODE(FILE_DEVICE_VIDEO, 0x104, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_VIDEO_RESTORE_HARDWARE_STATE \
+ CTL_CODE(FILE_DEVICE_VIDEO, 0x81, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_VIDEO_SAVE_HARDWARE_STATE \
+ CTL_CODE(FILE_DEVICE_VIDEO, 0x80, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_VIDEO_SET_CHILD_STATE_CONFIGURATION \
+ CTL_CODE(FILE_DEVICE_VIDEO, 0x122, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_VIDEO_SET_COLOR_REGISTERS \
+ CTL_CODE(FILE_DEVICE_VIDEO, 0x107, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_VIDEO_SET_CURRENT_MODE \
+ CTL_CODE(FILE_DEVICE_VIDEO, 0x103, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_VIDEO_SET_CURSOR_ATTR \
+ CTL_CODE(FILE_DEVICE_VIDEO, 0x10a, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_VIDEO_SET_CURSOR_POSITION \
+ CTL_CODE(FILE_DEVICE_VIDEO, 0x10c, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_VIDEO_SET_PALETTE_REGISTERS \
+ CTL_CODE(FILE_DEVICE_VIDEO, 0x106, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_VIDEO_SET_POINTER_ATTR \
+ CTL_CODE(FILE_DEVICE_VIDEO, 0x110, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_VIDEO_SET_POINTER_POSITION \
+ CTL_CODE(FILE_DEVICE_VIDEO, 0x112, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_VIDEO_SET_POWER_MANAGEMENT \
+ CTL_CODE(FILE_DEVICE_VIDEO, 0x11b, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_VIDEO_SHARE_VIDEO_MEMORY \
+ CTL_CODE(FILE_DEVICE_VIDEO, 0x11d, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_VIDEO_SWITCH_DUALVIEW \
+ CTL_CODE(FILE_DEVICE_VIDEO, 0x123, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_VIDEO_UNMAP_VIDEO_MEMORY \
+ CTL_CODE(FILE_DEVICE_VIDEO, 0x117, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_VIDEO_UNSHARE_VIDEO_MEMORY \
+ CTL_CODE(FILE_DEVICE_VIDEO, 0x11e, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_VIDEO_VALIDATE_CHILD_STATE_CONFIGURATION \
+ CTL_CODE(FILE_DEVICE_VIDEO, 0x121, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+
+
+typedef struct _VIDEO_MEMORY {
+ PVOID RequestedVirtualAddress;
+} VIDEO_MEMORY, *PVIDEO_MEMORY;
+
+typedef struct _VIDEO_MEMORY_INFORMATION {
+ PVOID VideoRamBase;
+ ULONG VideoRamLength;
+ PVOID FrameBufferBase;
+ ULONG FrameBufferLength;
+} VIDEO_MEMORY_INFORMATION, *PVIDEO_MEMORY_INFORMATION;
+
+/* VIDEO_MODE.RequestedMode */
+#define VIDEO_MODE_MAP_MEM_LINEAR 0x40000000
+#define VIDEO_MODE_NO_ZERO_MEMORY 0x80000000
+
+typedef struct _VIDEO_MODE {
+ ULONG RequestedMode;
+} VIDEO_MODE, *PVIDEO_MODE;
+
+/* VIDEO_MODE_INFORMATION.AttributeFlags */
+#define VIDEO_MODE_COLOR 0x0001
+#define VIDEO_MODE_GRAPHICS 0x0002
+#define VIDEO_MODE_PALETTE_DRIVEN 0x0004
+#define VIDEO_MODE_MANAGED_PALETTE 0x0008
+#define VIDEO_MODE_INTERLACED 0x0010
+#define VIDEO_MODE_NO_OFF_SCREEN 0x0020
+#define VIDEO_MODE_NO_64_BIT_ACCESS 0x0040
+#define VIDEO_MODE_BANKED 0x0080
+#define VIDEO_MODE_LINEAR 0x0100
+
+typedef struct _VIDEO_MODE_INFORMATION {
+ ULONG Length;
+ ULONG ModeIndex;
+ ULONG VisScreenWidth;
+ ULONG VisScreenHeight;
+ ULONG ScreenStride;
+ ULONG NumberOfPlanes;
+ ULONG BitsPerPlane;
+ ULONG Frequency;
+ ULONG XMillimeter;
+ ULONG YMillimeter;
+ ULONG NumberRedBits;
+ ULONG NumberGreenBits;
+ ULONG NumberBlueBits;
+ ULONG RedMask;
+ ULONG GreenMask;
+ ULONG BlueMask;
+ ULONG AttributeFlags;
+ ULONG VideoMemoryBitmapWidth;
+ ULONG VideoMemoryBitmapHeight;
+ ULONG DriverSpecificAttributeFlags;
+} VIDEO_MODE_INFORMATION, *PVIDEO_MODE_INFORMATION;
+
+typedef struct _VIDEO_NUM_MODES {
+ ULONG NumModes;
+ ULONG ModeInformationLength;
+} VIDEO_NUM_MODES, *PVIDEO_NUM_MODES;
+
+typedef enum _VIDEO_POWER_STATE {
+ VideoPowerUnspecified = 0,
+ VideoPowerOn = 1,
+ VideoPowerStandBy,
+ VideoPowerSuspend,
+ VideoPowerOff,
+ VideoPowerHibernate,
+ VideoPowerShutdown,
+ VideoPowerMaximum
+} VIDEO_POWER_STATE, *PVIDEO_POWER_STATE;
+
+typedef struct _VIDEO_POWER_MANAGEMENT {
+ ULONG Length;
+ ULONG DPMSVersion;
+ ULONG PowerState;
+} VIDEO_POWER_MANAGEMENT, *PVIDEO_POWER_MANAGEMENT;
+
+typedef struct _VIDEO_PUBLIC_ACCESS_RANGES {
+ ULONG InIoSpace;
+ ULONG MappedInIoSpace;
+ PVOID VirtualAddress;
+} VIDEO_PUBLIC_ACCESS_RANGES, *PVIDEO_PUBLIC_ACCESS_RANGES;
+
+typedef struct _VIDEO_SHARE_MEMORY {
+ HANDLE ProcessHandle;
+ ULONG ViewOffset;
+ ULONG ViewSize;
+ PVOID RequestedVirtualAddress;
+} VIDEO_SHARE_MEMORY, *PVIDEO_SHARE_MEMORY;
+
+typedef struct _VIDEO_SHARE_MEMORY_INFORMATION {
+ ULONG SharedViewOffset;
+ ULONG SharedViewSize;
+ PVOID VirtualAddress;
+} VIDEO_SHARE_MEMORY_INFORMATION, *PVIDEO_SHARE_MEMORY_INFORMATION;
+
+/* VIDEO_BANK_SELECT.BankingFlags constants */
+#define PLANAR_HC 0x00000001
+
+/* VIDEO_BANK_SELECT.BankingType and PlanarHCBankingType constants */
+typedef enum _VIDEO_BANK_TYPE {
+ VideoNotBanked = 0,
+ VideoBanked1RW,
+ VideoBanked1R1W,
+ VideoBanked2RW,
+ NumVideoBankTypes
+} VIDEO_BANK_TYPE, *PVIDEO_BANK_TYPE;
+
+typedef struct _VIDEO_BANK_SELECT {
+ ULONG Length;
+ ULONG Size;
+ ULONG BankingFlags;
+ ULONG BankingType;
+ ULONG PlanarHCBankingType;
+ ULONG BitmapWidthInBytes;
+ ULONG BitmapSize;
+ ULONG Granularity;
+ ULONG PlanarHCGranularity;
+ ULONG CodeOffset;
+ ULONG PlanarHCBankCodeOffset;
+ ULONG PlanarHCEnableCodeOffset;
+ ULONG PlanarHCDisableCodeOffset;
+} VIDEO_BANK_SELECT, *PVIDEO_BANK_SELECT;
+
+typedef struct _VIDEO_LOAD_FONT_INFORMATION {
+ USHORT WidthInPixels;
+ USHORT HeightInPixels;
+ ULONG FontSize;
+ UCHAR Font[1];
+} VIDEO_LOAD_FONT_INFORMATION, *PVIDEO_LOAD_FONT_INFORMATION;
+
+/* VIDEO_COLOR_CAPABILITIES.AttributeFlags constants */
+#define VIDEO_DEVICE_COLOR 0x00000001
+#define VIDEO_OPTIONAL_GAMMET_TABLE 0x00000002
+
+typedef struct _VIDEO_COLOR_CAPABILITIES {
+ ULONG Length;
+ ULONG AttributeFlags;
+ LONG RedPhosphoreDecay;
+ LONG GreenPhosphoreDecay;
+ LONG BluePhosphoreDecay;
+ LONG WhiteChromaticity_x;
+ LONG WhiteChromaticity_y;
+ LONG WhiteChromaticity_Y;
+ LONG RedChromaticity_x;
+ LONG RedChromaticity_y;
+ LONG GreenChromaticity_x;
+ LONG GreenChromaticity_y;
+ LONG BlueChromaticity_x;
+ LONG BlueChromaticity_y;
+ LONG WhiteGamma;
+ LONG RedGamma;
+ LONG GreenGamma;
+ LONG BlueGamma;
+} VIDEO_COLOR_CAPABILITIES, *PVIDEO_COLOR_CAPABILITIES;
+
+typedef struct _VIDEO_CURSOR_ATTRIBUTES {
+ USHORT Width;
+ USHORT Height;
+ SHORT Column;
+ SHORT Row;
+ UCHAR Rate;
+ UCHAR Enable;
+} VIDEO_CURSOR_ATTRIBUTES, *PVIDEO_CURSOR_ATTRIBUTES;
+
+typedef struct _VIDEO_CURSOR_POSITION {
+ SHORT Column;
+ SHORT Row;
+} VIDEO_CURSOR_POSITION, *PVIDEO_CURSOR_POSITION;
+
+typedef struct _VIDEO_POINTER_ATTRIBUTES {
+ ULONG Flags;
+ ULONG Width;
+ ULONG Height;
+ ULONG WidthInBytes;
+ ULONG Enable;
+ SHORT Column;
+ SHORT Row;
+ UCHAR Pixels[1];
+} VIDEO_POINTER_ATTRIBUTES, *PVIDEO_POINTER_ATTRIBUTES;
+
+/* VIDEO_POINTER_CAPABILITIES.Flags */
+#define VIDEO_MODE_ASYNC_POINTER 0x01
+#define VIDEO_MODE_MONO_POINTER 0x02
+#define VIDEO_MODE_COLOR_POINTER 0x04
+#define VIDEO_MODE_ANIMATE_START 0x08
+#define VIDEO_MODE_ANIMATE_UPDATE 0x10
+
+typedef struct _VIDEO_POINTER_CAPABILITIES {
+ ULONG Flags;
+ ULONG MaxWidth;
+ ULONG MaxHeight;
+ ULONG HWPtrBitmapStart;
+ ULONG HWPtrBitmapEnd;
+} VIDEO_POINTER_CAPABILITIES, *PVIDEO_POINTER_CAPABILITIES;
+
+typedef struct _VIDEO_POINTER_POSITION {
+ SHORT Column;
+ SHORT Row;
+} VIDEO_POINTER_POSITION, *PVIDEO_POINTER_POSITION;
+
+
+/* VIDEO_HARDWARE_STATE_HEADER.VGAStateFlags constants */
+#define VIDEO_STATE_NON_STANDARD_VGA 0x00000001
+#define VIDEO_STATE_UNEMULATED_VGA_STATE 0x00000002
+#define VIDEO_STATE_PACKED_CHAIN4_MODE 0x00000004
+
+typedef struct _VIDEO_HARDWARE_STATE_HEADER {
+ ULONG Length;
+ UCHAR PortValue[0x30];
+ ULONG AttribIndexDataState;
+ ULONG BasicSequencerOffset;
+ ULONG BasicCrtContOffset;
+ ULONG BasicGraphContOffset;
+ ULONG BasicAttribContOffset;
+ ULONG BasicDacOffset;
+ ULONG BasicLatchesOffset;
+ ULONG ExtendedSequencerOffset;
+ ULONG ExtendedCrtContOffset;
+ ULONG ExtendedGraphContOffset;
+ ULONG ExtendedAttribContOffset;
+ ULONG ExtendedDacOffset;
+ ULONG ExtendedValidatorStateOffset;
+ ULONG ExtendedMiscDataOffset;
+ ULONG PlaneLength;
+ ULONG Plane1Offset;
+ ULONG Plane2Offset;
+ ULONG Plane3Offset;
+ ULONG Plane4Offset;
+ ULONG VGAStateFlags;
+ ULONG DIBOffset;
+ ULONG DIBBitsPerPixel;
+ ULONG DIBXResolution;
+ ULONG DIBYResolution;
+ ULONG DIBXlatOffset;
+ ULONG DIBXlatLength;
+ ULONG VesaInfoOffset;
+ PVOID FrameBufferData;
+} VIDEO_HARDWARE_STATE_HEADER, *PVIDEO_HARDWARE_STATE_HEADER;
+
+typedef struct _VIDEO_CLUTDATA {
+ UCHAR Red;
+ UCHAR Green;
+ UCHAR Blue;
+ UCHAR Unused;
+} VIDEO_CLUTDATA, *PVIDEO_CLUTDATA;
+
+typedef struct {
+ USHORT NumEntries;
+ USHORT FirstEntry;
+ union {
+ VIDEO_CLUTDATA RgbArray;
+ ULONG RgbLong;
+ } LookupTable[1];
+} VIDEO_CLUT, *PVIDEO_CLUT;
+
+typedef struct _VIDEO_PALETTE_DATA {
+ USHORT NumEntries;
+ USHORT FirstEntry;
+ USHORT Colors[1];
+} VIDEO_PALETTE_DATA, *PVIDEO_PALETTE_DATA;
+
+typedef struct _VIDEO_HARDWARE_STATE {
+ PVIDEO_HARDWARE_STATE_HEADER StateHeader;
+ ULONG StateLength;
+} VIDEO_HARDWARE_STATE, *PVIDEO_HARDWARE_STATE;
+
+#define VIDEO_CHILD_ACTIVE 0x00000001
+#define VIDEO_CHILD_DETACHED 0x00000002
+#define VIDEO_CHILD_NOPRUNE_FREQ 0x80000000
+#define VIDEO_CHILD_NOPRUNE_RESOLUTION 0x40000000
+
+#define VIDEO_DUALVIEW_REMOVABLE 0x00000001
+#define VIDEO_DUALVIEW_PRIMARY 0x80000000
+#define VIDEO_DUALVIEW_SECONDARY 0x40000000
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __NTDDVDEO_H */