1c2c66affSColin Finck /* 2c2c66affSColin Finck * ntddvdeo.h 3c2c66affSColin Finck * 4c2c66affSColin Finck * Definitions for video devices 5c2c66affSColin Finck * 6c2c66affSColin Finck * This file is part of the w32api package. 7c2c66affSColin Finck * 8c2c66affSColin Finck * Contributors: 9c2c66affSColin Finck * Created by Casper S. Hornstrup <chorns@users.sourceforge.net> 10c2c66affSColin Finck * 11c2c66affSColin Finck * THIS SOFTWARE IS NOT COPYRIGHTED 12c2c66affSColin Finck * 13c2c66affSColin Finck * This source code is offered for use in the public domain. You may 14c2c66affSColin Finck * use, modify or distribute it freely. 15c2c66affSColin Finck * 16c2c66affSColin Finck * This code is distributed in the hope that it will be useful but 17c2c66affSColin Finck * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY 18c2c66affSColin Finck * DISCLAIMED. This includes but is not limited to warranties of 19c2c66affSColin Finck * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 20c2c66affSColin Finck * 21c2c66affSColin Finck */ 22c2c66affSColin Finck 23*b5f9e1c2SHermès Bélusca-Maïto #ifndef _NTDDVDEO_ 24c2c66affSColin Finck #define _NTDDVDEO_ 25c2c66affSColin Finck 26*b5f9e1c2SHermès Bélusca-Maïto #pragma once 27*b5f9e1c2SHermès Bélusca-Maïto 28*b5f9e1c2SHermès Bélusca-Maïto /* 29*b5f9e1c2SHermès Bélusca-Maïto * Display output interfaces 30*b5f9e1c2SHermès Bélusca-Maïto * {96304d9f-54b5-11d1-8b0f-00a0c9068ff3} 31*b5f9e1c2SHermès Bélusca-Maïto */ 32*b5f9e1c2SHermès Bélusca-Maïto // DEFINE_GUID(GUID_DISPLAY_OUTPUT_INTERFACE_STANDARD, \/ 33*b5f9e1c2SHermès Bélusca-Maïto // 0x96304d9f, 0x54b5, 0x11d1, 0x8b, 0x0f, 0x00, 0xa0, 0xc9, 0x06, 0x8f, 0xf3); 34*b5f9e1c2SHermès Bélusca-Maïto 35*b5f9e1c2SHermès Bélusca-Maïto /* 36*b5f9e1c2SHermès Bélusca-Maïto * Display adapter device interface 37*b5f9e1c2SHermès Bélusca-Maïto * {5b45201d-f2f2-4f3b-85bb-30ff1f953599} 38*b5f9e1c2SHermès Bélusca-Maïto */ 39c2c66affSColin Finck DEFINE_GUID(GUID_DEVINTERFACE_DISPLAY_ADAPTER, \ 40c2c66affSColin Finck 0x5b45201d, 0xf2f2, 0x4f3b, 0x85, 0xbb, 0x30, 0xff, 0x1f, 0x95, 0x35, 0x99); 41c2c66affSColin Finck 42*b5f9e1c2SHermès Bélusca-Maïto /* 43*b5f9e1c2SHermès Bélusca-Maïto * Obsolete device interface class GUID names 44*b5f9e1c2SHermès Bélusca-Maïto * (use of above GUID_DEVINTERFACE_* names is recommended) 45*b5f9e1c2SHermès Bélusca-Maïto */ 46*b5f9e1c2SHermès Bélusca-Maïto #define GUID_DISPLAY_ADAPTER_INTERFACE GUID_DEVINTERFACE_DISPLAY_ADAPTER 47*b5f9e1c2SHermès Bélusca-Maïto 48*b5f9e1c2SHermès Bélusca-Maïto #if (NTDDI_VERSION >= NTDDI_VISTA) 49*b5f9e1c2SHermès Bélusca-Maïto 50*b5f9e1c2SHermès Bélusca-Maïto /* 51*b5f9e1c2SHermès Bélusca-Maïto * Monitor device interface 52*b5f9e1c2SHermès Bélusca-Maïto * {e6f07b5f-ee97-4a90-b076-33f57bf4eaa7} 53*b5f9e1c2SHermès Bélusca-Maïto */ 54*b5f9e1c2SHermès Bélusca-Maïto DEFINE_GUID(GUID_DEVINTERFACE_MONITOR, \ 55*b5f9e1c2SHermès Bélusca-Maïto 0xe6f07b5f, 0xee97, 0x4a90, 0xb0, 0x76, 0x33, 0xf5, 0x7b, 0xf4, 0xea, 0xa7); 56*b5f9e1c2SHermès Bélusca-Maïto 57*b5f9e1c2SHermès Bélusca-Maïto /* 58*b5f9e1c2SHermès Bélusca-Maïto * Interface used by anyone listening for arrival of the display device 59*b5f9e1c2SHermès Bélusca-Maïto * {1ca05180-a699-450a-9a0c-de4fbe3ddd89} 60*b5f9e1c2SHermès Bélusca-Maïto */ 61*b5f9e1c2SHermès Bélusca-Maïto DEFINE_GUID(GUID_DISPLAY_DEVICE_ARRIVAL, \ 62*b5f9e1c2SHermès Bélusca-Maïto 0x1ca05180, 0xa699, 0x450a, 0x9a, 0x0c, 0xde, 0x4f, 0xbe, 0x3d, 0xdd, 0x89); 63*b5f9e1c2SHermès Bélusca-Maïto 64*b5f9e1c2SHermès Bélusca-Maïto /* 65*b5f9e1c2SHermès Bélusca-Maïto * Interface used by anyone listening for arrival of display children 66*b5f9e1c2SHermès Bélusca-Maïto * {1ad9e4f0-f88d-4360-bab9-4c2d55e564cd} 67*b5f9e1c2SHermès Bélusca-Maïto */ 68*b5f9e1c2SHermès Bélusca-Maïto DEFINE_GUID(GUID_DEVINTERFACE_VIDEO_OUTPUT_ARRIVAL, \ 69*b5f9e1c2SHermès Bélusca-Maïto 0x1ad9e4f0, 0xf88d, 0x4360, 0xba, 0xb9, 0x4c, 0x2d, 0x55, 0xe5, 0x64, 0xcd); 70*b5f9e1c2SHermès Bélusca-Maïto 71*b5f9e1c2SHermès Bélusca-Maïto #endif // (NTDDI_VERSION >= NTDDI_VISTA) 72*b5f9e1c2SHermès Bélusca-Maïto 73*b5f9e1c2SHermès Bélusca-Maïto #if (NTDDI_VERSION >= NTDDI_WIN10_RS1) 74*b5f9e1c2SHermès Bélusca-Maïto #ifdef DEFINE_DEVPROPKEY 75*b5f9e1c2SHermès Bélusca-Maïto 76*b5f9e1c2SHermès Bélusca-Maïto /* 77*b5f9e1c2SHermès Bélusca-Maïto * Property on a display class device's DevNode indicating 78*b5f9e1c2SHermès Bélusca-Maïto * that it is a indirect display. 79*b5f9e1c2SHermès Bélusca-Maïto */ 80*b5f9e1c2SHermès Bélusca-Maïto DEFINE_DEVPROPKEY(DEVPKEY_IndirectDisplay, \ 81*b5f9e1c2SHermès Bélusca-Maïto 0xc50a3f10, 0xaa5c, 0x4247, 0xb8, 0x30, 0xd6, 0xa6, 0xf8, 0xea, 0xa3, 0x10, 0x01); 82*b5f9e1c2SHermès Bélusca-Maïto 83*b5f9e1c2SHermès Bélusca-Maïto struct INDIRECT_DISPLAY_INFO 84*b5f9e1c2SHermès Bélusca-Maïto { 85*b5f9e1c2SHermès Bélusca-Maïto LUID DisplayAdapterLuid; 86*b5f9e1c2SHermès Bélusca-Maïto ULONG Flags; 87*b5f9e1c2SHermès Bélusca-Maïto ULONG NumMonitors; 88*b5f9e1c2SHermès Bélusca-Maïto ULONG DisplayAdapterTargetBase; 89*b5f9e1c2SHermès Bélusca-Maïto }; 90*b5f9e1c2SHermès Bélusca-Maïto 91*b5f9e1c2SHermès Bélusca-Maïto /* This indirect display device created an IddCx adapter */ 92*b5f9e1c2SHermès Bélusca-Maïto #define INDIRECT_DISPLAY_INFO_FLAGS_CREATED_IDDCX_ADAPTER 0x01 93*b5f9e1c2SHermès Bélusca-Maïto 94*b5f9e1c2SHermès Bélusca-Maïto #endif // DEFINE_DEVPROPKEY 95*b5f9e1c2SHermès Bélusca-Maïto #endif // (NTDDI_VERSION >= NTDDI_WIN10_RS1) 96*b5f9e1c2SHermès Bélusca-Maïto 97*b5f9e1c2SHermès Bélusca-Maïto 98c2c66affSColin Finck #ifndef GUID_DEFS_ONLY 99c2c66affSColin Finck 100c2c66affSColin Finck #ifdef __cplusplus 101c2c66affSColin Finck extern "C" { 102c2c66affSColin Finck #endif 103c2c66affSColin Finck 104c2c66affSColin Finck #define VIDEO_DEVICE_NAME "DISPLAY%d" 105c2c66affSColin Finck #define WVIDEO_DEVICE_NAME L"DISPLAY%d" 106c2c66affSColin Finck 107c2c66affSColin Finck #define DD_FULLSCREEN_VIDEO_DEVICE_NAME L"\\Device\\FSVideo" 108c2c66affSColin Finck 109c2c66affSColin Finck 110c2c66affSColin Finck #define IOCTL_VIDEO_ENABLE_VDM \ 111c2c66affSColin Finck CTL_CODE(FILE_DEVICE_VIDEO, 0x00, METHOD_BUFFERED, FILE_ANY_ACCESS) 112c2c66affSColin Finck 113c2c66affSColin Finck #define IOCTL_VIDEO_DISABLE_VDM \ 114c2c66affSColin Finck CTL_CODE(FILE_DEVICE_VIDEO, 0x01, METHOD_BUFFERED, FILE_ANY_ACCESS) 115c2c66affSColin Finck 116c2c66affSColin Finck #define IOCTL_VIDEO_REGISTER_VDM \ 117c2c66affSColin Finck CTL_CODE(FILE_DEVICE_VIDEO, 0x02, METHOD_BUFFERED, FILE_ANY_ACCESS) 118c2c66affSColin Finck 119c2c66affSColin Finck #define IOCTL_VIDEO_SET_OUTPUT_DEVICE_POWER_STATE \ 120c2c66affSColin Finck CTL_CODE(FILE_DEVICE_VIDEO, 0x03, METHOD_BUFFERED, FILE_ANY_ACCESS) 121c2c66affSColin Finck 122c2c66affSColin Finck #define IOCTL_VIDEO_GET_OUTPUT_DEVICE_POWER_STATE \ 123c2c66affSColin Finck CTL_CODE(FILE_DEVICE_VIDEO, 0x04, METHOD_BUFFERED, FILE_ANY_ACCESS) 124c2c66affSColin Finck 125c2c66affSColin Finck #define IOCTL_VIDEO_MONITOR_DEVICE \ 126c2c66affSColin Finck CTL_CODE(FILE_DEVICE_VIDEO, 0x05, METHOD_BUFFERED, FILE_ANY_ACCESS) 127c2c66affSColin Finck 128c2c66affSColin Finck #define IOCTL_VIDEO_ENUM_MONITOR_PDO \ 129c2c66affSColin Finck CTL_CODE(FILE_DEVICE_VIDEO, 0x06, METHOD_BUFFERED, FILE_ANY_ACCESS) 130c2c66affSColin Finck 131c2c66affSColin Finck #define IOCTL_VIDEO_INIT_WIN32K_CALLBACKS \ 132c2c66affSColin Finck CTL_CODE(FILE_DEVICE_VIDEO, 0x07, METHOD_BUFFERED, FILE_ANY_ACCESS) 133c2c66affSColin Finck 134c2c66affSColin Finck #define IOCTL_VIDEO_HANDLE_VIDEOPARAMETERS \ 135c2c66affSColin Finck CTL_CODE(FILE_DEVICE_VIDEO, 0x08, METHOD_BUFFERED, FILE_ANY_ACCESS) 136c2c66affSColin Finck 137c2c66affSColin Finck #define IOCTL_VIDEO_IS_VGA_DEVICE \ 138c2c66affSColin Finck CTL_CODE(FILE_DEVICE_VIDEO, 0x09, METHOD_BUFFERED, FILE_ANY_ACCESS) 139c2c66affSColin Finck 140c2c66affSColin Finck #define IOCTL_VIDEO_USE_DEVICE_IN_SESSION \ 141c2c66affSColin Finck CTL_CODE(FILE_DEVICE_VIDEO, 0x0a, METHOD_BUFFERED, FILE_ANY_ACCESS) 142c2c66affSColin Finck 143c2c66affSColin Finck #define IOCTL_VIDEO_PREPARE_FOR_EARECOVERY \ 144c2c66affSColin Finck CTL_CODE(FILE_DEVICE_VIDEO, 0x0b, METHOD_BUFFERED, FILE_ANY_ACCESS) 145c2c66affSColin Finck 146c2c66affSColin Finck #define IOCTL_VIDEO_DISABLE_CURSOR \ 147c2c66affSColin Finck CTL_CODE(FILE_DEVICE_VIDEO, 0x109, METHOD_BUFFERED, FILE_ANY_ACCESS) 148c2c66affSColin Finck 149c2c66affSColin Finck #define IOCTL_VIDEO_DISABLE_POINTER \ 150c2c66affSColin Finck CTL_CODE(FILE_DEVICE_VIDEO, 0x10f, METHOD_BUFFERED, FILE_ANY_ACCESS) 151c2c66affSColin Finck 152c2c66affSColin Finck #define IOCTL_VIDEO_ENABLE_CURSOR \ 153c2c66affSColin Finck CTL_CODE(FILE_DEVICE_VIDEO, 0x108, METHOD_BUFFERED, FILE_ANY_ACCESS) 154c2c66affSColin Finck 155c2c66affSColin Finck #define IOCTL_VIDEO_ENABLE_POINTER \ 156c2c66affSColin Finck CTL_CODE(FILE_DEVICE_VIDEO, 0x10e, METHOD_BUFFERED, FILE_ANY_ACCESS) 157c2c66affSColin Finck 158c2c66affSColin Finck #define IOCTL_VIDEO_FREE_PUBLIC_ACCESS_RANGES \ 159c2c66affSColin Finck CTL_CODE(FILE_DEVICE_VIDEO, 0x119, METHOD_BUFFERED, FILE_ANY_ACCESS) 160c2c66affSColin Finck 161c2c66affSColin Finck #define IOCTL_VIDEO_GET_BANK_SELECT_CODE \ 162c2c66affSColin Finck CTL_CODE(FILE_DEVICE_VIDEO, 0x115, METHOD_BUFFERED, FILE_ANY_ACCESS) 163c2c66affSColin Finck 164c2c66affSColin Finck #define IOCTL_VIDEO_GET_CHILD_STATE \ 165c2c66affSColin Finck CTL_CODE(FILE_DEVICE_VIDEO, 0x120, METHOD_BUFFERED, FILE_ANY_ACCESS) 166c2c66affSColin Finck 167c2c66affSColin Finck #define IOCTL_VIDEO_GET_POWER_MANAGEMENT \ 168c2c66affSColin Finck CTL_CODE(FILE_DEVICE_VIDEO, 0x11c, METHOD_BUFFERED, FILE_ANY_ACCESS) 169c2c66affSColin Finck 170c2c66affSColin Finck #define IOCTL_VIDEO_LOAD_AND_SET_FONT \ 171c2c66affSColin Finck CTL_CODE(FILE_DEVICE_VIDEO, 0x105, METHOD_BUFFERED, FILE_ANY_ACCESS) 172c2c66affSColin Finck 173c2c66affSColin Finck #define IOCTL_VIDEO_MAP_VIDEO_MEMORY \ 174c2c66affSColin Finck CTL_CODE(FILE_DEVICE_VIDEO, 0x116, METHOD_BUFFERED, FILE_ANY_ACCESS) 175c2c66affSColin Finck 176c2c66affSColin Finck #define IOCTL_VIDEO_QUERY_AVAIL_MODES \ 177c2c66affSColin Finck CTL_CODE(FILE_DEVICE_VIDEO, 0x100, METHOD_BUFFERED, FILE_ANY_ACCESS) 178c2c66affSColin Finck 179c2c66affSColin Finck #define IOCTL_VIDEO_QUERY_COLOR_CAPABILITIES \ 180c2c66affSColin Finck CTL_CODE(FILE_DEVICE_VIDEO, 0x11a, METHOD_BUFFERED, FILE_ANY_ACCESS) 181c2c66affSColin Finck 182c2c66affSColin Finck #define IOCTL_VIDEO_QUERY_CURRENT_MODE \ 183c2c66affSColin Finck CTL_CODE(FILE_DEVICE_VIDEO, 0x102, METHOD_BUFFERED, FILE_ANY_ACCESS) 184c2c66affSColin Finck 185c2c66affSColin Finck #define IOCTL_VIDEO_QUERY_CURSOR_ATTR \ 186c2c66affSColin Finck CTL_CODE(FILE_DEVICE_VIDEO, 0x10b, METHOD_BUFFERED, FILE_ANY_ACCESS) 187c2c66affSColin Finck 188c2c66affSColin Finck #define IOCTL_VIDEO_QUERY_CURSOR_POSITION \ 189c2c66affSColin Finck CTL_CODE(FILE_DEVICE_VIDEO, 0x10d, METHOD_BUFFERED, FILE_ANY_ACCESS) 190c2c66affSColin Finck 191c2c66affSColin Finck #define IOCTL_VIDEO_QUERY_NUM_AVAIL_MODES \ 192c2c66affSColin Finck CTL_CODE(FILE_DEVICE_VIDEO, 0x101, METHOD_BUFFERED, FILE_ANY_ACCESS) 193c2c66affSColin Finck 194c2c66affSColin Finck #define IOCTL_VIDEO_QUERY_POINTER_ATTR \ 195c2c66affSColin Finck CTL_CODE(FILE_DEVICE_VIDEO, 0x111, METHOD_BUFFERED, FILE_ANY_ACCESS) 196c2c66affSColin Finck 197c2c66affSColin Finck #define IOCTL_VIDEO_QUERY_POINTER_CAPABILITIES \ 198c2c66affSColin Finck CTL_CODE(FILE_DEVICE_VIDEO, 0x114, METHOD_BUFFERED, FILE_ANY_ACCESS) 199c2c66affSColin Finck 200c2c66affSColin Finck #define IOCTL_VIDEO_QUERY_POINTER_POSITION \ 201c2c66affSColin Finck CTL_CODE(FILE_DEVICE_VIDEO, 0x113, METHOD_BUFFERED, FILE_ANY_ACCESS) 202c2c66affSColin Finck 203c2c66affSColin Finck #define IOCTL_VIDEO_QUERY_PUBLIC_ACCESS_RANGES \ 204c2c66affSColin Finck CTL_CODE(FILE_DEVICE_VIDEO, 0x118, METHOD_BUFFERED, FILE_ANY_ACCESS) 205c2c66affSColin Finck 206c2c66affSColin Finck #define IOCTL_VIDEO_RESET_DEVICE \ 207c2c66affSColin Finck CTL_CODE(FILE_DEVICE_VIDEO, 0x104, METHOD_BUFFERED, FILE_ANY_ACCESS) 208c2c66affSColin Finck 209c2c66affSColin Finck #define IOCTL_VIDEO_RESTORE_HARDWARE_STATE \ 210c2c66affSColin Finck CTL_CODE(FILE_DEVICE_VIDEO, 0x81, METHOD_BUFFERED, FILE_ANY_ACCESS) 211c2c66affSColin Finck 212c2c66affSColin Finck #define IOCTL_VIDEO_SAVE_HARDWARE_STATE \ 213c2c66affSColin Finck CTL_CODE(FILE_DEVICE_VIDEO, 0x80, METHOD_BUFFERED, FILE_ANY_ACCESS) 214c2c66affSColin Finck 215c2c66affSColin Finck #define IOCTL_VIDEO_SET_CHILD_STATE_CONFIGURATION \ 216c2c66affSColin Finck CTL_CODE(FILE_DEVICE_VIDEO, 0x122, METHOD_BUFFERED, FILE_ANY_ACCESS) 217c2c66affSColin Finck 218c2c66affSColin Finck #define IOCTL_VIDEO_SET_COLOR_REGISTERS \ 219c2c66affSColin Finck CTL_CODE(FILE_DEVICE_VIDEO, 0x107, METHOD_BUFFERED, FILE_ANY_ACCESS) 220c2c66affSColin Finck 221c2c66affSColin Finck #define IOCTL_VIDEO_SET_CURRENT_MODE \ 222c2c66affSColin Finck CTL_CODE(FILE_DEVICE_VIDEO, 0x103, METHOD_BUFFERED, FILE_ANY_ACCESS) 223c2c66affSColin Finck 224c2c66affSColin Finck #define IOCTL_VIDEO_SET_CURSOR_ATTR \ 225c2c66affSColin Finck CTL_CODE(FILE_DEVICE_VIDEO, 0x10a, METHOD_BUFFERED, FILE_ANY_ACCESS) 226c2c66affSColin Finck 227c2c66affSColin Finck #define IOCTL_VIDEO_SET_CURSOR_POSITION \ 228c2c66affSColin Finck CTL_CODE(FILE_DEVICE_VIDEO, 0x10c, METHOD_BUFFERED, FILE_ANY_ACCESS) 229c2c66affSColin Finck 230c2c66affSColin Finck #define IOCTL_VIDEO_SET_PALETTE_REGISTERS \ 231c2c66affSColin Finck CTL_CODE(FILE_DEVICE_VIDEO, 0x106, METHOD_BUFFERED, FILE_ANY_ACCESS) 232c2c66affSColin Finck 233c2c66affSColin Finck #define IOCTL_VIDEO_SET_POINTER_ATTR \ 234c2c66affSColin Finck CTL_CODE(FILE_DEVICE_VIDEO, 0x110, METHOD_BUFFERED, FILE_ANY_ACCESS) 235c2c66affSColin Finck 236c2c66affSColin Finck #define IOCTL_VIDEO_SET_POINTER_POSITION \ 237c2c66affSColin Finck CTL_CODE(FILE_DEVICE_VIDEO, 0x112, METHOD_BUFFERED, FILE_ANY_ACCESS) 238c2c66affSColin Finck 239c2c66affSColin Finck #define IOCTL_VIDEO_SET_POWER_MANAGEMENT \ 240c2c66affSColin Finck CTL_CODE(FILE_DEVICE_VIDEO, 0x11b, METHOD_BUFFERED, FILE_ANY_ACCESS) 241c2c66affSColin Finck 242c2c66affSColin Finck #define IOCTL_VIDEO_SHARE_VIDEO_MEMORY \ 243c2c66affSColin Finck CTL_CODE(FILE_DEVICE_VIDEO, 0x11d, METHOD_BUFFERED, FILE_ANY_ACCESS) 244c2c66affSColin Finck 245c2c66affSColin Finck #define IOCTL_VIDEO_SWITCH_DUALVIEW \ 246c2c66affSColin Finck CTL_CODE(FILE_DEVICE_VIDEO, 0x123, METHOD_BUFFERED, FILE_ANY_ACCESS) 247c2c66affSColin Finck 248c2c66affSColin Finck #define IOCTL_VIDEO_UNMAP_VIDEO_MEMORY \ 249c2c66affSColin Finck CTL_CODE(FILE_DEVICE_VIDEO, 0x117, METHOD_BUFFERED, FILE_ANY_ACCESS) 250c2c66affSColin Finck 251c2c66affSColin Finck #define IOCTL_VIDEO_UNSHARE_VIDEO_MEMORY \ 252c2c66affSColin Finck CTL_CODE(FILE_DEVICE_VIDEO, 0x11e, METHOD_BUFFERED, FILE_ANY_ACCESS) 253c2c66affSColin Finck 254c2c66affSColin Finck #define IOCTL_VIDEO_SET_COLOR_LUT_DATA \ 255c2c66affSColin Finck CTL_CODE(FILE_DEVICE_VIDEO, 0x11f, METHOD_BUFFERED, FILE_ANY_ACCESS) 256c2c66affSColin Finck 257c2c66affSColin Finck #define IOCTL_VIDEO_VALIDATE_CHILD_STATE_CONFIGURATION \ 258c2c66affSColin Finck CTL_CODE(FILE_DEVICE_VIDEO, 0x121, METHOD_BUFFERED, FILE_ANY_ACCESS) 259c2c66affSColin Finck 260c2c66affSColin Finck #define IOCTL_VIDEO_SET_BANK_POSITION \ 261c2c66affSColin Finck CTL_CODE(FILE_DEVICE_VIDEO, 0x124, METHOD_BUFFERED, FILE_ANY_ACCESS) 262c2c66affSColin Finck 263c2c66affSColin Finck #define IOCTL_VIDEO_QUERY_SUPPORTED_BRIGHTNESS \ 264c2c66affSColin Finck CTL_CODE(FILE_DEVICE_VIDEO, 0x125, METHOD_BUFFERED, FILE_ANY_ACCESS) 265c2c66affSColin Finck 266c2c66affSColin Finck #define IOCTL_VIDEO_QUERY_DISPLAY_BRIGHTNESS \ 267c2c66affSColin Finck CTL_CODE(FILE_DEVICE_VIDEO, 0x126, METHOD_BUFFERED, FILE_ANY_ACCESS) 268c2c66affSColin Finck 269c2c66affSColin Finck #define IOCTL_VIDEO_SET_DISPLAY_BRIGHTNESS \ 270c2c66affSColin Finck CTL_CODE(FILE_DEVICE_VIDEO, 0x127, METHOD_BUFFERED, FILE_ANY_ACCESS) 271c2c66affSColin Finck 272c2c66affSColin Finck typedef struct _VIDEO_VDM { 273c2c66affSColin Finck HANDLE ProcessHandle; 274c2c66affSColin Finck } VIDEO_VDM, *PVIDEO_VDM; 275c2c66affSColin Finck 276c2c66affSColin Finck typedef struct _VIDEO_REGISTER_VDM { 277c2c66affSColin Finck ULONG MinimumStateSize; 278c2c66affSColin Finck } VIDEO_REGISTER_VDM, *PVIDEO_REGISTER_VDM; 279c2c66affSColin Finck 280c2c66affSColin Finck typedef struct tagVIDEO_MONITOR_DEVICE { 281c2c66affSColin Finck ULONG flag; 282f26fe3f1SHervé Poussineau HANDLE pdo; 283c2c66affSColin Finck ULONG HwID; 284c2c66affSColin Finck BOOLEAN Internal; 285c2c66affSColin Finck } VIDEO_MONITOR_DEVICE, *PVIDEO_MONITOR_DEVICE; 286c2c66affSColin Finck 287c2c66affSColin Finck typedef struct tagVIDEO_MONITOR_DESCRIPTOR { 288c2c66affSColin Finck ULONG DescriptorSize; 289c2c66affSColin Finck UCHAR Descriptor[1]; 290c2c66affSColin Finck } VIDEO_MONITOR_DESCRIPTOR, *PVIDEO_MONITOR_DESCRIPTOR; 291c2c66affSColin Finck 292c2c66affSColin Finck typedef enum _VIDEO_WIN32K_CALLBACKS_PARAMS_TYPE { 293c2c66affSColin Finck VideoPowerNotifyCallout = 1, 294c2c66affSColin Finck VideoDisplaySwitchCallout, 295c2c66affSColin Finck VideoEnumChildPdoNotifyCallout, 296c2c66affSColin Finck VideoFindAdapterCallout, 297c2c66affSColin Finck VideoWakeupCallout, 298c2c66affSColin Finck VideoChangeDisplaySettingsCallout, 299c2c66affSColin Finck VideoPnpNotifyCallout, 300c2c66affSColin Finck VideoDxgkDisplaySwitchCallout, 301c2c66affSColin Finck VideoDxgkMonitorEventCallout, 302c2c66affSColin Finck VideoDxgkFindAdapterTdrCallout 303c2c66affSColin Finck } VIDEO_WIN32K_CALLBACKS_PARAMS_TYPE; 304c2c66affSColin Finck 305c2c66affSColin Finck #define DXGK_WIN32K_PARAM_FLAG_UPDATEREGISTRY 1 306c2c66affSColin Finck #define DXGK_WIN32K_PARAM_FLAG_MODESWITCH 2 307c2c66affSColin Finck #define DXGK_WIN32K_PARAM_FLAG_DISABLEVIEW 4 308c2c66affSColin Finck 309c2c66affSColin Finck typedef struct _DXGK_WIN32K_PARAM_DATA 310c2c66affSColin Finck { 311c2c66affSColin Finck PVOID PathsArray; 312c2c66affSColin Finck PVOID ModesArray; 313c2c66affSColin Finck ULONG NumPathArrayElements; 314c2c66affSColin Finck ULONG NumModeArrayElements; 315c2c66affSColin Finck ULONG SDCFlags; 316c2c66affSColin Finck } DXGK_WIN32K_PARAM_DATA, *PDXGK_WIN32K_PARAM_DATA; 317c2c66affSColin Finck 318c2c66affSColin Finck typedef struct _VIDEO_WIN32K_CALLBACKS_PARAMS { 319c2c66affSColin Finck VIDEO_WIN32K_CALLBACKS_PARAMS_TYPE CalloutType; 320c2c66affSColin Finck PVOID PhysDisp; 321c2c66affSColin Finck ULONG_PTR Param; 322c2c66affSColin Finck LONG Status; 323c2c66affSColin Finck } VIDEO_WIN32K_CALLBACKS_PARAMS, *PVIDEO_WIN32K_CALLBACKS_PARAMS; 324c2c66affSColin Finck 325c2c66affSColin Finck typedef 326c2c66affSColin Finck VOID 3270ad65796SHermès Bélusca-Maïto (NTAPI *PVIDEO_WIN32K_CALLOUT)( 328c2c66affSColin Finck _In_ PVOID Params); 329c2c66affSColin Finck 330c2c66affSColin Finck typedef struct _VIDEO_WIN32K_CALLBACKS { 331c2c66affSColin Finck IN PVOID PhysDisp; 332c2c66affSColin Finck IN PVIDEO_WIN32K_CALLOUT Callout; 333c2c66affSColin Finck OUT ULONG bACPI; 334c2c66affSColin Finck OUT HANDLE pPhysDeviceObject; 335c2c66affSColin Finck OUT ULONG DualviewFlags; 336c2c66affSColin Finck } VIDEO_WIN32K_CALLBACKS, *PVIDEO_WIN32K_CALLBACKS; 337c2c66affSColin Finck 338c2c66affSColin Finck typedef struct _VIDEO_DEVICE_SESSION_STATUS { 339c2c66affSColin Finck ULONG bEnable; 340c2c66affSColin Finck ULONG bSuccess; 341c2c66affSColin Finck } VIDEO_DEVICE_SESSION_STATUS, *PVIDEO_DEVICE_SESSION_STATUS; 342c2c66affSColin Finck 343c2c66affSColin Finck typedef struct _VIDEO_MEMORY { 344c2c66affSColin Finck PVOID RequestedVirtualAddress; 345c2c66affSColin Finck } VIDEO_MEMORY, *PVIDEO_MEMORY; 346c2c66affSColin Finck 347c2c66affSColin Finck typedef struct _VIDEO_MEMORY_INFORMATION { 348c2c66affSColin Finck PVOID VideoRamBase; 349c2c66affSColin Finck ULONG VideoRamLength; 350c2c66affSColin Finck PVOID FrameBufferBase; 351c2c66affSColin Finck ULONG FrameBufferLength; 352c2c66affSColin Finck } VIDEO_MEMORY_INFORMATION, *PVIDEO_MEMORY_INFORMATION; 353c2c66affSColin Finck 354c2c66affSColin Finck /* VIDEO_MODE.RequestedMode */ 355c2c66affSColin Finck #define VIDEO_MODE_MAP_MEM_LINEAR 0x40000000 356c2c66affSColin Finck #define VIDEO_MODE_NO_ZERO_MEMORY 0x80000000 357c2c66affSColin Finck 358c2c66affSColin Finck typedef struct _VIDEO_MODE { 359c2c66affSColin Finck ULONG RequestedMode; 360c2c66affSColin Finck } VIDEO_MODE, *PVIDEO_MODE; 361c2c66affSColin Finck 362c2c66affSColin Finck /* VIDEO_MODE_INFORMATION.AttributeFlags */ 363c2c66affSColin Finck #define VIDEO_MODE_COLOR 0x0001 364c2c66affSColin Finck #define VIDEO_MODE_GRAPHICS 0x0002 365c2c66affSColin Finck #define VIDEO_MODE_PALETTE_DRIVEN 0x0004 366c2c66affSColin Finck #define VIDEO_MODE_MANAGED_PALETTE 0x0008 367c2c66affSColin Finck #define VIDEO_MODE_INTERLACED 0x0010 368c2c66affSColin Finck #define VIDEO_MODE_NO_OFF_SCREEN 0x0020 369c2c66affSColin Finck #define VIDEO_MODE_NO_64_BIT_ACCESS 0x0040 370c2c66affSColin Finck #define VIDEO_MODE_BANKED 0x0080 371c2c66affSColin Finck #define VIDEO_MODE_LINEAR 0x0100 372c2c66affSColin Finck 373c2c66affSColin Finck typedef struct _VIDEO_MODE_INFORMATION { 374c2c66affSColin Finck ULONG Length; 375c2c66affSColin Finck ULONG ModeIndex; 376c2c66affSColin Finck ULONG VisScreenWidth; 377c2c66affSColin Finck ULONG VisScreenHeight; 378c2c66affSColin Finck ULONG ScreenStride; 379c2c66affSColin Finck ULONG NumberOfPlanes; 380c2c66affSColin Finck ULONG BitsPerPlane; 381c2c66affSColin Finck ULONG Frequency; 382c2c66affSColin Finck ULONG XMillimeter; 383c2c66affSColin Finck ULONG YMillimeter; 384c2c66affSColin Finck ULONG NumberRedBits; 385c2c66affSColin Finck ULONG NumberGreenBits; 386c2c66affSColin Finck ULONG NumberBlueBits; 387c2c66affSColin Finck ULONG RedMask; 388c2c66affSColin Finck ULONG GreenMask; 389c2c66affSColin Finck ULONG BlueMask; 390c2c66affSColin Finck ULONG AttributeFlags; 391c2c66affSColin Finck ULONG VideoMemoryBitmapWidth; 392c2c66affSColin Finck ULONG VideoMemoryBitmapHeight; 393c2c66affSColin Finck ULONG DriverSpecificAttributeFlags; 394c2c66affSColin Finck } VIDEO_MODE_INFORMATION, *PVIDEO_MODE_INFORMATION; 395c2c66affSColin Finck 396c2c66affSColin Finck typedef struct _VIDEO_NUM_MODES { 397c2c66affSColin Finck ULONG NumModes; 398c2c66affSColin Finck ULONG ModeInformationLength; 399c2c66affSColin Finck } VIDEO_NUM_MODES, *PVIDEO_NUM_MODES; 400c2c66affSColin Finck 401c2c66affSColin Finck typedef enum _VIDEO_POWER_STATE { 402c2c66affSColin Finck VideoPowerUnspecified = 0, 403c2c66affSColin Finck VideoPowerOn = 1, 404c2c66affSColin Finck VideoPowerStandBy, 405c2c66affSColin Finck VideoPowerSuspend, 406c2c66affSColin Finck VideoPowerOff, 407c2c66affSColin Finck VideoPowerHibernate, 408c2c66affSColin Finck VideoPowerShutdown, 409c2c66affSColin Finck VideoPowerMaximum 410c2c66affSColin Finck } VIDEO_POWER_STATE, *PVIDEO_POWER_STATE; 411c2c66affSColin Finck 412c2c66affSColin Finck typedef struct _VIDEO_POWER_MANAGEMENT { 413c2c66affSColin Finck ULONG Length; 414c2c66affSColin Finck ULONG DPMSVersion; 415c2c66affSColin Finck ULONG PowerState; 416c2c66affSColin Finck } VIDEO_POWER_MANAGEMENT, *PVIDEO_POWER_MANAGEMENT; 417c2c66affSColin Finck 418c2c66affSColin Finck typedef struct _VIDEO_PUBLIC_ACCESS_RANGES { 419c2c66affSColin Finck ULONG InIoSpace; 420c2c66affSColin Finck ULONG MappedInIoSpace; 421c2c66affSColin Finck PVOID VirtualAddress; 422c2c66affSColin Finck } VIDEO_PUBLIC_ACCESS_RANGES, *PVIDEO_PUBLIC_ACCESS_RANGES; 423c2c66affSColin Finck 424c2c66affSColin Finck typedef struct _VIDEO_SHARE_MEMORY { 425c2c66affSColin Finck HANDLE ProcessHandle; 426c2c66affSColin Finck ULONG ViewOffset; 427c2c66affSColin Finck ULONG ViewSize; 428c2c66affSColin Finck PVOID RequestedVirtualAddress; 429c2c66affSColin Finck } VIDEO_SHARE_MEMORY, *PVIDEO_SHARE_MEMORY; 430c2c66affSColin Finck 431c2c66affSColin Finck typedef struct _VIDEO_SHARE_MEMORY_INFORMATION { 432c2c66affSColin Finck ULONG SharedViewOffset; 433c2c66affSColin Finck ULONG SharedViewSize; 434c2c66affSColin Finck PVOID VirtualAddress; 435c2c66affSColin Finck } VIDEO_SHARE_MEMORY_INFORMATION, *PVIDEO_SHARE_MEMORY_INFORMATION; 436c2c66affSColin Finck 437c2c66affSColin Finck /* VIDEO_BANK_SELECT.BankingFlags constants */ 438c2c66affSColin Finck #define PLANAR_HC 0x00000001 439c2c66affSColin Finck 440c2c66affSColin Finck /* VIDEO_BANK_SELECT.BankingType and PlanarHCBankingType constants */ 441c2c66affSColin Finck typedef enum _VIDEO_BANK_TYPE { 442c2c66affSColin Finck VideoNotBanked = 0, 443c2c66affSColin Finck VideoBanked1RW, 444c2c66affSColin Finck VideoBanked1R1W, 445c2c66affSColin Finck VideoBanked2RW, 446c2c66affSColin Finck NumVideoBankTypes 447c2c66affSColin Finck } VIDEO_BANK_TYPE, *PVIDEO_BANK_TYPE; 448c2c66affSColin Finck 449c2c66affSColin Finck typedef struct _VIDEO_BANK_SELECT { 450c2c66affSColin Finck ULONG Length; 451c2c66affSColin Finck ULONG Size; 452c2c66affSColin Finck ULONG BankingFlags; 453c2c66affSColin Finck ULONG BankingType; 454c2c66affSColin Finck ULONG PlanarHCBankingType; 455c2c66affSColin Finck ULONG BitmapWidthInBytes; 456c2c66affSColin Finck ULONG BitmapSize; 457c2c66affSColin Finck ULONG Granularity; 458c2c66affSColin Finck ULONG PlanarHCGranularity; 459c2c66affSColin Finck ULONG CodeOffset; 460c2c66affSColin Finck ULONG PlanarHCBankCodeOffset; 461c2c66affSColin Finck ULONG PlanarHCEnableCodeOffset; 462c2c66affSColin Finck ULONG PlanarHCDisableCodeOffset; 463c2c66affSColin Finck } VIDEO_BANK_SELECT, *PVIDEO_BANK_SELECT; 464c2c66affSColin Finck 465c2c66affSColin Finck typedef struct _VIDEO_LOAD_FONT_INFORMATION { 466c2c66affSColin Finck USHORT WidthInPixels; 467c2c66affSColin Finck USHORT HeightInPixels; 468c2c66affSColin Finck ULONG FontSize; 469c2c66affSColin Finck UCHAR Font[1]; 470c2c66affSColin Finck } VIDEO_LOAD_FONT_INFORMATION, *PVIDEO_LOAD_FONT_INFORMATION; 471c2c66affSColin Finck 472c2c66affSColin Finck /* VIDEO_COLOR_CAPABILITIES.AttributeFlags constants */ 473c2c66affSColin Finck #define VIDEO_DEVICE_COLOR 0x00000001 474c2c66affSColin Finck #define VIDEO_OPTIONAL_GAMMET_TABLE 0x00000002 475c2c66affSColin Finck 476c2c66affSColin Finck typedef struct _VIDEO_COLOR_CAPABILITIES { 477c2c66affSColin Finck ULONG Length; 478c2c66affSColin Finck ULONG AttributeFlags; 479c2c66affSColin Finck LONG RedPhosphoreDecay; 480c2c66affSColin Finck LONG GreenPhosphoreDecay; 481c2c66affSColin Finck LONG BluePhosphoreDecay; 482c2c66affSColin Finck LONG WhiteChromaticity_x; 483c2c66affSColin Finck LONG WhiteChromaticity_y; 484c2c66affSColin Finck LONG WhiteChromaticity_Y; 485c2c66affSColin Finck LONG RedChromaticity_x; 486c2c66affSColin Finck LONG RedChromaticity_y; 487c2c66affSColin Finck LONG GreenChromaticity_x; 488c2c66affSColin Finck LONG GreenChromaticity_y; 489c2c66affSColin Finck LONG BlueChromaticity_x; 490c2c66affSColin Finck LONG BlueChromaticity_y; 491c2c66affSColin Finck LONG WhiteGamma; 492c2c66affSColin Finck LONG RedGamma; 493c2c66affSColin Finck LONG GreenGamma; 494c2c66affSColin Finck LONG BlueGamma; 495c2c66affSColin Finck } VIDEO_COLOR_CAPABILITIES, *PVIDEO_COLOR_CAPABILITIES; 496c2c66affSColin Finck 497c2c66affSColin Finck typedef struct _VIDEO_CURSOR_ATTRIBUTES { 498c2c66affSColin Finck USHORT Width; 499c2c66affSColin Finck USHORT Height; 500c2c66affSColin Finck SHORT Column; 501c2c66affSColin Finck SHORT Row; 502c2c66affSColin Finck UCHAR Rate; 503c2c66affSColin Finck UCHAR Enable; 504c2c66affSColin Finck } VIDEO_CURSOR_ATTRIBUTES, *PVIDEO_CURSOR_ATTRIBUTES; 505c2c66affSColin Finck 506c2c66affSColin Finck typedef struct _VIDEO_CURSOR_POSITION { 507c2c66affSColin Finck SHORT Column; 508c2c66affSColin Finck SHORT Row; 509c2c66affSColin Finck } VIDEO_CURSOR_POSITION, *PVIDEO_CURSOR_POSITION; 510c2c66affSColin Finck 511c2c66affSColin Finck typedef struct _VIDEO_POINTER_ATTRIBUTES { 512c2c66affSColin Finck ULONG Flags; 513c2c66affSColin Finck ULONG Width; 514c2c66affSColin Finck ULONG Height; 515c2c66affSColin Finck ULONG WidthInBytes; 516c2c66affSColin Finck ULONG Enable; 517c2c66affSColin Finck SHORT Column; 518c2c66affSColin Finck SHORT Row; 519c2c66affSColin Finck UCHAR Pixels[1]; 520c2c66affSColin Finck } VIDEO_POINTER_ATTRIBUTES, *PVIDEO_POINTER_ATTRIBUTES; 521c2c66affSColin Finck 522c2c66affSColin Finck /* VIDEO_POINTER_CAPABILITIES.Flags */ 523c2c66affSColin Finck #define VIDEO_MODE_ASYNC_POINTER 0x01 524c2c66affSColin Finck #define VIDEO_MODE_MONO_POINTER 0x02 525c2c66affSColin Finck #define VIDEO_MODE_COLOR_POINTER 0x04 526c2c66affSColin Finck #define VIDEO_MODE_ANIMATE_START 0x08 527c2c66affSColin Finck #define VIDEO_MODE_ANIMATE_UPDATE 0x10 528c2c66affSColin Finck 529c2c66affSColin Finck typedef struct _VIDEO_POINTER_CAPABILITIES { 530c2c66affSColin Finck ULONG Flags; 531c2c66affSColin Finck ULONG MaxWidth; 532c2c66affSColin Finck ULONG MaxHeight; 533c2c66affSColin Finck ULONG HWPtrBitmapStart; 534c2c66affSColin Finck ULONG HWPtrBitmapEnd; 535c2c66affSColin Finck } VIDEO_POINTER_CAPABILITIES, *PVIDEO_POINTER_CAPABILITIES; 536c2c66affSColin Finck 537c2c66affSColin Finck typedef struct _VIDEO_POINTER_POSITION { 538c2c66affSColin Finck SHORT Column; 539c2c66affSColin Finck SHORT Row; 540c2c66affSColin Finck } VIDEO_POINTER_POSITION, *PVIDEO_POINTER_POSITION; 541c2c66affSColin Finck 542c2c66affSColin Finck 543c2c66affSColin Finck /* VIDEO_HARDWARE_STATE_HEADER.VGAStateFlags constants */ 544c2c66affSColin Finck #define VIDEO_STATE_NON_STANDARD_VGA 0x00000001 545c2c66affSColin Finck #define VIDEO_STATE_UNEMULATED_VGA_STATE 0x00000002 546c2c66affSColin Finck #define VIDEO_STATE_PACKED_CHAIN4_MODE 0x00000004 547c2c66affSColin Finck 548c2c66affSColin Finck typedef struct _VIDEO_HARDWARE_STATE_HEADER { 549c2c66affSColin Finck ULONG Length; 550c2c66affSColin Finck UCHAR PortValue[0x30]; 551c2c66affSColin Finck ULONG AttribIndexDataState; 552c2c66affSColin Finck ULONG BasicSequencerOffset; 553c2c66affSColin Finck ULONG BasicCrtContOffset; 554c2c66affSColin Finck ULONG BasicGraphContOffset; 555c2c66affSColin Finck ULONG BasicAttribContOffset; 556c2c66affSColin Finck ULONG BasicDacOffset; 557c2c66affSColin Finck ULONG BasicLatchesOffset; 558c2c66affSColin Finck ULONG ExtendedSequencerOffset; 559c2c66affSColin Finck ULONG ExtendedCrtContOffset; 560c2c66affSColin Finck ULONG ExtendedGraphContOffset; 561c2c66affSColin Finck ULONG ExtendedAttribContOffset; 562c2c66affSColin Finck ULONG ExtendedDacOffset; 563c2c66affSColin Finck ULONG ExtendedValidatorStateOffset; 564c2c66affSColin Finck ULONG ExtendedMiscDataOffset; 565c2c66affSColin Finck ULONG PlaneLength; 566c2c66affSColin Finck ULONG Plane1Offset; 567c2c66affSColin Finck ULONG Plane2Offset; 568c2c66affSColin Finck ULONG Plane3Offset; 569c2c66affSColin Finck ULONG Plane4Offset; 570c2c66affSColin Finck ULONG VGAStateFlags; 571c2c66affSColin Finck ULONG DIBOffset; 572c2c66affSColin Finck ULONG DIBBitsPerPixel; 573c2c66affSColin Finck ULONG DIBXResolution; 574c2c66affSColin Finck ULONG DIBYResolution; 575c2c66affSColin Finck ULONG DIBXlatOffset; 576c2c66affSColin Finck ULONG DIBXlatLength; 577c2c66affSColin Finck ULONG VesaInfoOffset; 578c2c66affSColin Finck PVOID FrameBufferData; 579c2c66affSColin Finck } VIDEO_HARDWARE_STATE_HEADER, *PVIDEO_HARDWARE_STATE_HEADER; 580c2c66affSColin Finck 581c2c66affSColin Finck typedef struct _VIDEO_CLUTDATA { 582c2c66affSColin Finck UCHAR Red; 583c2c66affSColin Finck UCHAR Green; 584c2c66affSColin Finck UCHAR Blue; 585c2c66affSColin Finck UCHAR Unused; 586c2c66affSColin Finck } VIDEO_CLUTDATA, *PVIDEO_CLUTDATA; 587c2c66affSColin Finck 588c2c66affSColin Finck typedef struct { 589c2c66affSColin Finck USHORT NumEntries; 590c2c66affSColin Finck USHORT FirstEntry; 591c2c66affSColin Finck union { 592c2c66affSColin Finck VIDEO_CLUTDATA RgbArray; 593c2c66affSColin Finck ULONG RgbLong; 594c2c66affSColin Finck } LookupTable[1]; 595c2c66affSColin Finck } VIDEO_CLUT, *PVIDEO_CLUT; 596c2c66affSColin Finck 597c2c66affSColin Finck typedef struct _VIDEO_PALETTE_DATA { 598c2c66affSColin Finck USHORT NumEntries; 599c2c66affSColin Finck USHORT FirstEntry; 600c2c66affSColin Finck USHORT Colors[1]; 601c2c66affSColin Finck } VIDEO_PALETTE_DATA, *PVIDEO_PALETTE_DATA; 602c2c66affSColin Finck 603c2c66affSColin Finck typedef struct _VIDEO_HARDWARE_STATE { 604c2c66affSColin Finck PVIDEO_HARDWARE_STATE_HEADER StateHeader; 605c2c66affSColin Finck ULONG StateLength; 606c2c66affSColin Finck } VIDEO_HARDWARE_STATE, *PVIDEO_HARDWARE_STATE; 607c2c66affSColin Finck 608c2c66affSColin Finck #define VIDEO_CHILD_ACTIVE 0x00000001 609c2c66affSColin Finck #define VIDEO_CHILD_DETACHED 0x00000002 610c2c66affSColin Finck #define VIDEO_CHILD_NOPRUNE_FREQ 0x80000000 611c2c66affSColin Finck #define VIDEO_CHILD_NOPRUNE_RESOLUTION 0x40000000 612c2c66affSColin Finck 613c2c66affSColin Finck #define VIDEO_DUALVIEW_REMOVABLE 0x00000001 614c2c66affSColin Finck #define VIDEO_DUALVIEW_PRIMARY 0x80000000 615c2c66affSColin Finck #define VIDEO_DUALVIEW_SECONDARY 0x40000000 616c2c66affSColin Finck 617c2c66affSColin Finck #ifndef _WINDDI_ 618c2c66affSColin Finck typedef struct _ENG_EVENT *PEVENT; 619c2c66affSColin Finck #endif 620c2c66affSColin Finck 621c2c66affSColin Finck typedef struct _ENG_EVENT 622c2c66affSColin Finck { 623c2c66affSColin Finck PVOID pKEvent; 624c2c66affSColin Finck ULONG fFlags; 625c2c66affSColin Finck } ENG_EVENT, *PENG_EVENT; 626c2c66affSColin Finck 627c2c66affSColin Finck typedef struct _DISPLAY_BRIGHTNESS { 628c2c66affSColin Finck UCHAR ucDisplayPolicy; 629c2c66affSColin Finck UCHAR ucACBrightness; 630c2c66affSColin Finck UCHAR ucDCBrightness; 631c2c66affSColin Finck } DISPLAY_BRIGHTNESS, *PDISPLAY_BRIGHTNESS; 632c2c66affSColin Finck 633c2c66affSColin Finck #define DISPLAYPOLICY_AC 0x00000001 634c2c66affSColin Finck #define DISPLAYPOLICY_DC 0x00000002 635c2c66affSColin Finck #define DISPLAYPOLICY_BOTH 0x00000003 636c2c66affSColin Finck 637c2c66affSColin Finck 638c2c66affSColin Finck #ifdef __cplusplus 639c2c66affSColin Finck } 640c2c66affSColin Finck #endif 641c2c66affSColin Finck 642*b5f9e1c2SHermès Bélusca-Maïto #endif /* !GUID_DEFS_ONLY */ 643*b5f9e1c2SHermès Bélusca-Maïto 644*b5f9e1c2SHermès Bélusca-Maïto #endif /* _NTDDVDEO_ */ 645