27 0x5b45201d, 0xf2f2, 0x4f3b, 0x85, 0xbb, 0x30, 0xff, 0x1f, 0x95, 0x35, 0x99);
35#define VIDEO_DEVICE_NAME "DISPLAY%d"
36#define WVIDEO_DEVICE_NAME L"DISPLAY%d"
38#define DD_FULLSCREEN_VIDEO_DEVICE_NAME L"\\Device\\FSVideo"
41#define IOCTL_VIDEO_ENABLE_VDM \
42 CTL_CODE(FILE_DEVICE_VIDEO, 0x00, METHOD_BUFFERED, FILE_ANY_ACCESS)
44#define IOCTL_VIDEO_DISABLE_VDM \
45 CTL_CODE(FILE_DEVICE_VIDEO, 0x01, METHOD_BUFFERED, FILE_ANY_ACCESS)
47#define IOCTL_VIDEO_REGISTER_VDM \
48 CTL_CODE(FILE_DEVICE_VIDEO, 0x02, METHOD_BUFFERED, FILE_ANY_ACCESS)
50#define IOCTL_VIDEO_SET_OUTPUT_DEVICE_POWER_STATE \
51 CTL_CODE(FILE_DEVICE_VIDEO, 0x03, METHOD_BUFFERED, FILE_ANY_ACCESS)
53#define IOCTL_VIDEO_GET_OUTPUT_DEVICE_POWER_STATE \
54 CTL_CODE(FILE_DEVICE_VIDEO, 0x04, METHOD_BUFFERED, FILE_ANY_ACCESS)
56#define IOCTL_VIDEO_MONITOR_DEVICE \
57 CTL_CODE(FILE_DEVICE_VIDEO, 0x05, METHOD_BUFFERED, FILE_ANY_ACCESS)
59#define IOCTL_VIDEO_ENUM_MONITOR_PDO \
60 CTL_CODE(FILE_DEVICE_VIDEO, 0x06, METHOD_BUFFERED, FILE_ANY_ACCESS)
62#define IOCTL_VIDEO_INIT_WIN32K_CALLBACKS \
63 CTL_CODE(FILE_DEVICE_VIDEO, 0x07, METHOD_BUFFERED, FILE_ANY_ACCESS)
65#define IOCTL_VIDEO_HANDLE_VIDEOPARAMETERS \
66 CTL_CODE(FILE_DEVICE_VIDEO, 0x08, METHOD_BUFFERED, FILE_ANY_ACCESS)
68#define IOCTL_VIDEO_IS_VGA_DEVICE \
69 CTL_CODE(FILE_DEVICE_VIDEO, 0x09, METHOD_BUFFERED, FILE_ANY_ACCESS)
71#define IOCTL_VIDEO_USE_DEVICE_IN_SESSION \
72 CTL_CODE(FILE_DEVICE_VIDEO, 0x0a, METHOD_BUFFERED, FILE_ANY_ACCESS)
74#define IOCTL_VIDEO_PREPARE_FOR_EARECOVERY \
75 CTL_CODE(FILE_DEVICE_VIDEO, 0x0b, METHOD_BUFFERED, FILE_ANY_ACCESS)
77#define IOCTL_VIDEO_DISABLE_CURSOR \
78 CTL_CODE(FILE_DEVICE_VIDEO, 0x109, METHOD_BUFFERED, FILE_ANY_ACCESS)
80#define IOCTL_VIDEO_DISABLE_POINTER \
81 CTL_CODE(FILE_DEVICE_VIDEO, 0x10f, METHOD_BUFFERED, FILE_ANY_ACCESS)
83#define IOCTL_VIDEO_ENABLE_CURSOR \
84 CTL_CODE(FILE_DEVICE_VIDEO, 0x108, METHOD_BUFFERED, FILE_ANY_ACCESS)
86#define IOCTL_VIDEO_ENABLE_POINTER \
87 CTL_CODE(FILE_DEVICE_VIDEO, 0x10e, METHOD_BUFFERED, FILE_ANY_ACCESS)
89#define IOCTL_VIDEO_FREE_PUBLIC_ACCESS_RANGES \
90 CTL_CODE(FILE_DEVICE_VIDEO, 0x119, METHOD_BUFFERED, FILE_ANY_ACCESS)
92#define IOCTL_VIDEO_GET_BANK_SELECT_CODE \
93 CTL_CODE(FILE_DEVICE_VIDEO, 0x115, METHOD_BUFFERED, FILE_ANY_ACCESS)
95#define IOCTL_VIDEO_GET_CHILD_STATE \
96 CTL_CODE(FILE_DEVICE_VIDEO, 0x120, METHOD_BUFFERED, FILE_ANY_ACCESS)
98#define IOCTL_VIDEO_GET_POWER_MANAGEMENT \
99 CTL_CODE(FILE_DEVICE_VIDEO, 0x11c, METHOD_BUFFERED, FILE_ANY_ACCESS)
101#define IOCTL_VIDEO_LOAD_AND_SET_FONT \
102 CTL_CODE(FILE_DEVICE_VIDEO, 0x105, METHOD_BUFFERED, FILE_ANY_ACCESS)
104#define IOCTL_VIDEO_MAP_VIDEO_MEMORY \
105 CTL_CODE(FILE_DEVICE_VIDEO, 0x116, METHOD_BUFFERED, FILE_ANY_ACCESS)
107#define IOCTL_VIDEO_QUERY_AVAIL_MODES \
108 CTL_CODE(FILE_DEVICE_VIDEO, 0x100, METHOD_BUFFERED, FILE_ANY_ACCESS)
110#define IOCTL_VIDEO_QUERY_COLOR_CAPABILITIES \
111 CTL_CODE(FILE_DEVICE_VIDEO, 0x11a, METHOD_BUFFERED, FILE_ANY_ACCESS)
113#define IOCTL_VIDEO_QUERY_CURRENT_MODE \
114 CTL_CODE(FILE_DEVICE_VIDEO, 0x102, METHOD_BUFFERED, FILE_ANY_ACCESS)
116#define IOCTL_VIDEO_QUERY_CURSOR_ATTR \
117 CTL_CODE(FILE_DEVICE_VIDEO, 0x10b, METHOD_BUFFERED, FILE_ANY_ACCESS)
119#define IOCTL_VIDEO_QUERY_CURSOR_POSITION \
120 CTL_CODE(FILE_DEVICE_VIDEO, 0x10d, METHOD_BUFFERED, FILE_ANY_ACCESS)
122#define IOCTL_VIDEO_QUERY_NUM_AVAIL_MODES \
123 CTL_CODE(FILE_DEVICE_VIDEO, 0x101, METHOD_BUFFERED, FILE_ANY_ACCESS)
125#define IOCTL_VIDEO_QUERY_POINTER_ATTR \
126 CTL_CODE(FILE_DEVICE_VIDEO, 0x111, METHOD_BUFFERED, FILE_ANY_ACCESS)
128#define IOCTL_VIDEO_QUERY_POINTER_CAPABILITIES \
129 CTL_CODE(FILE_DEVICE_VIDEO, 0x114, METHOD_BUFFERED, FILE_ANY_ACCESS)
131#define IOCTL_VIDEO_QUERY_POINTER_POSITION \
132 CTL_CODE(FILE_DEVICE_VIDEO, 0x113, METHOD_BUFFERED, FILE_ANY_ACCESS)
134#define IOCTL_VIDEO_QUERY_PUBLIC_ACCESS_RANGES \
135 CTL_CODE(FILE_DEVICE_VIDEO, 0x118, METHOD_BUFFERED, FILE_ANY_ACCESS)
137#define IOCTL_VIDEO_RESET_DEVICE \
138 CTL_CODE(FILE_DEVICE_VIDEO, 0x104, METHOD_BUFFERED, FILE_ANY_ACCESS)
140#define IOCTL_VIDEO_RESTORE_HARDWARE_STATE \
141 CTL_CODE(FILE_DEVICE_VIDEO, 0x81, METHOD_BUFFERED, FILE_ANY_ACCESS)
143#define IOCTL_VIDEO_SAVE_HARDWARE_STATE \
144 CTL_CODE(FILE_DEVICE_VIDEO, 0x80, METHOD_BUFFERED, FILE_ANY_ACCESS)
146#define IOCTL_VIDEO_SET_CHILD_STATE_CONFIGURATION \
147 CTL_CODE(FILE_DEVICE_VIDEO, 0x122, METHOD_BUFFERED, FILE_ANY_ACCESS)
149#define IOCTL_VIDEO_SET_COLOR_REGISTERS \
150 CTL_CODE(FILE_DEVICE_VIDEO, 0x107, METHOD_BUFFERED, FILE_ANY_ACCESS)
152#define IOCTL_VIDEO_SET_CURRENT_MODE \
153 CTL_CODE(FILE_DEVICE_VIDEO, 0x103, METHOD_BUFFERED, FILE_ANY_ACCESS)
155#define IOCTL_VIDEO_SET_CURSOR_ATTR \
156 CTL_CODE(FILE_DEVICE_VIDEO, 0x10a, METHOD_BUFFERED, FILE_ANY_ACCESS)
158#define IOCTL_VIDEO_SET_CURSOR_POSITION \
159 CTL_CODE(FILE_DEVICE_VIDEO, 0x10c, METHOD_BUFFERED, FILE_ANY_ACCESS)
161#define IOCTL_VIDEO_SET_PALETTE_REGISTERS \
162 CTL_CODE(FILE_DEVICE_VIDEO, 0x106, METHOD_BUFFERED, FILE_ANY_ACCESS)
164#define IOCTL_VIDEO_SET_POINTER_ATTR \
165 CTL_CODE(FILE_DEVICE_VIDEO, 0x110, METHOD_BUFFERED, FILE_ANY_ACCESS)
167#define IOCTL_VIDEO_SET_POINTER_POSITION \
168 CTL_CODE(FILE_DEVICE_VIDEO, 0x112, METHOD_BUFFERED, FILE_ANY_ACCESS)
170#define IOCTL_VIDEO_SET_POWER_MANAGEMENT \
171 CTL_CODE(FILE_DEVICE_VIDEO, 0x11b, METHOD_BUFFERED, FILE_ANY_ACCESS)
173#define IOCTL_VIDEO_SHARE_VIDEO_MEMORY \
174 CTL_CODE(FILE_DEVICE_VIDEO, 0x11d, METHOD_BUFFERED, FILE_ANY_ACCESS)
176#define IOCTL_VIDEO_SWITCH_DUALVIEW \
177 CTL_CODE(FILE_DEVICE_VIDEO, 0x123, METHOD_BUFFERED, FILE_ANY_ACCESS)
179#define IOCTL_VIDEO_UNMAP_VIDEO_MEMORY \
180 CTL_CODE(FILE_DEVICE_VIDEO, 0x117, METHOD_BUFFERED, FILE_ANY_ACCESS)
182#define IOCTL_VIDEO_UNSHARE_VIDEO_MEMORY \
183 CTL_CODE(FILE_DEVICE_VIDEO, 0x11e, METHOD_BUFFERED, FILE_ANY_ACCESS)
185#define IOCTL_VIDEO_SET_COLOR_LUT_DATA \
186 CTL_CODE(FILE_DEVICE_VIDEO, 0x11f, METHOD_BUFFERED, FILE_ANY_ACCESS)
188#define IOCTL_VIDEO_VALIDATE_CHILD_STATE_CONFIGURATION \
189 CTL_CODE(FILE_DEVICE_VIDEO, 0x121, METHOD_BUFFERED, FILE_ANY_ACCESS)
191#define IOCTL_VIDEO_SET_BANK_POSITION \
192 CTL_CODE(FILE_DEVICE_VIDEO, 0x124, METHOD_BUFFERED, FILE_ANY_ACCESS)
194#define IOCTL_VIDEO_QUERY_SUPPORTED_BRIGHTNESS \
195 CTL_CODE(FILE_DEVICE_VIDEO, 0x125, METHOD_BUFFERED, FILE_ANY_ACCESS)
197#define IOCTL_VIDEO_QUERY_DISPLAY_BRIGHTNESS \
198 CTL_CODE(FILE_DEVICE_VIDEO, 0x126, METHOD_BUFFERED, FILE_ANY_ACCESS)
200#define IOCTL_VIDEO_SET_DISPLAY_BRIGHTNESS \
201 CTL_CODE(FILE_DEVICE_VIDEO, 0x127, METHOD_BUFFERED, FILE_ANY_ACCESS)
236#define DXGK_WIN32K_PARAM_FLAG_UPDATEREGISTRY 1
237#define DXGK_WIN32K_PARAM_FLAG_MODESWITCH 2
238#define DXGK_WIN32K_PARAM_FLAG_DISABLEVIEW 4
286#define VIDEO_MODE_MAP_MEM_LINEAR 0x40000000
287#define VIDEO_MODE_NO_ZERO_MEMORY 0x80000000
294#define VIDEO_MODE_COLOR 0x0001
295#define VIDEO_MODE_GRAPHICS 0x0002
296#define VIDEO_MODE_PALETTE_DRIVEN 0x0004
297#define VIDEO_MODE_MANAGED_PALETTE 0x0008
298#define VIDEO_MODE_INTERLACED 0x0010
299#define VIDEO_MODE_NO_OFF_SCREEN 0x0020
300#define VIDEO_MODE_NO_64_BIT_ACCESS 0x0040
301#define VIDEO_MODE_BANKED 0x0080
302#define VIDEO_MODE_LINEAR 0x0100
369#define PLANAR_HC 0x00000001
404#define VIDEO_DEVICE_COLOR 0x00000001
405#define VIDEO_OPTIONAL_GAMMET_TABLE 0x00000002
454#define VIDEO_MODE_ASYNC_POINTER 0x01
455#define VIDEO_MODE_MONO_POINTER 0x02
456#define VIDEO_MODE_COLOR_POINTER 0x04
457#define VIDEO_MODE_ANIMATE_START 0x08
458#define VIDEO_MODE_ANIMATE_UPDATE 0x10
475#define VIDEO_STATE_NON_STANDARD_VGA 0x00000001
476#define VIDEO_STATE_UNEMULATED_VGA_STATE 0x00000002
477#define VIDEO_STATE_PACKED_CHAIN4_MODE 0x00000004
539#define VIDEO_CHILD_ACTIVE 0x00000001
540#define VIDEO_CHILD_DETACHED 0x00000002
541#define VIDEO_CHILD_NOPRUNE_FREQ 0x80000000
542#define VIDEO_CHILD_NOPRUNE_RESOLUTION 0x40000000
544#define VIDEO_DUALVIEW_REMOVABLE 0x00000001
545#define VIDEO_DUALVIEW_PRIMARY 0x80000000
546#define VIDEO_DUALVIEW_SECONDARY 0x40000000
564#define DISPLAYPOLICY_AC 0x00000001
565#define DISPLAYPOLICY_DC 0x00000002
566#define DISPLAYPOLICY_BOTH 0x00000003
struct tagVIDEO_MONITOR_DESCRIPTOR VIDEO_MONITOR_DESCRIPTOR
struct _VIDEO_SHARE_MEMORY_INFORMATION * PVIDEO_SHARE_MEMORY_INFORMATION
struct _VIDEO_LOAD_FONT_INFORMATION * PVIDEO_LOAD_FONT_INFORMATION
struct _VIDEO_PUBLIC_ACCESS_RANGES VIDEO_PUBLIC_ACCESS_RANGES
struct _VIDEO_MEMORY VIDEO_MEMORY
struct _VIDEO_SHARE_MEMORY_INFORMATION VIDEO_SHARE_MEMORY_INFORMATION
struct _VIDEO_PUBLIC_ACCESS_RANGES * PVIDEO_PUBLIC_ACCESS_RANGES
struct _VIDEO_VDM VIDEO_VDM
struct _VIDEO_COLOR_CAPABILITIES VIDEO_COLOR_CAPABILITIES
struct _VIDEO_POINTER_POSITION VIDEO_POINTER_POSITION
struct _VIDEO_MODE VIDEO_MODE
struct _VIDEO_VDM * PVIDEO_VDM
enum _VIDEO_BANK_TYPE VIDEO_BANK_TYPE
VOID(NTAPI * PVIDEO_WIN32K_CALLOUT)(_In_ PVOID Params)
enum _VIDEO_WIN32K_CALLBACKS_PARAMS_TYPE VIDEO_WIN32K_CALLBACKS_PARAMS_TYPE
struct _VIDEO_REGISTER_VDM VIDEO_REGISTER_VDM
struct _VIDEO_CURSOR_ATTRIBUTES VIDEO_CURSOR_ATTRIBUTES
struct _VIDEO_PALETTE_DATA VIDEO_PALETTE_DATA
struct _VIDEO_MODE_INFORMATION * PVIDEO_MODE_INFORMATION
_VIDEO_WIN32K_CALLBACKS_PARAMS_TYPE
@ VideoEnumChildPdoNotifyCallout
@ VideoPowerNotifyCallout
@ VideoDxgkFindAdapterTdrCallout
@ VideoDxgkMonitorEventCallout
@ VideoChangeDisplaySettingsCallout
@ VideoDisplaySwitchCallout
@ VideoDxgkDisplaySwitchCallout
@ VideoFindAdapterCallout
struct _VIDEO_HARDWARE_STATE_HEADER VIDEO_HARDWARE_STATE_HEADER
struct _VIDEO_HARDWARE_STATE VIDEO_HARDWARE_STATE
enum _VIDEO_BANK_TYPE * PVIDEO_BANK_TYPE
struct _VIDEO_POWER_MANAGEMENT * PVIDEO_POWER_MANAGEMENT
struct _VIDEO_WIN32K_CALLBACKS_PARAMS VIDEO_WIN32K_CALLBACKS_PARAMS
struct _VIDEO_NUM_MODES * PVIDEO_NUM_MODES
struct _VIDEO_DEVICE_SESSION_STATUS * PVIDEO_DEVICE_SESSION_STATUS
struct tagVIDEO_MONITOR_DEVICE * PVIDEO_MONITOR_DEVICE
struct _ENG_EVENT * PEVENT
struct _VIDEO_CURSOR_ATTRIBUTES * PVIDEO_CURSOR_ATTRIBUTES
struct _VIDEO_MODE * PVIDEO_MODE
struct _VIDEO_POINTER_ATTRIBUTES VIDEO_POINTER_ATTRIBUTES
struct _DISPLAY_BRIGHTNESS DISPLAY_BRIGHTNESS
struct _VIDEO_WIN32K_CALLBACKS_PARAMS * PVIDEO_WIN32K_CALLBACKS_PARAMS
struct _VIDEO_MEMORY_INFORMATION * PVIDEO_MEMORY_INFORMATION
struct _VIDEO_POINTER_CAPABILITIES VIDEO_POINTER_CAPABILITIES
struct _VIDEO_REGISTER_VDM * PVIDEO_REGISTER_VDM
struct _VIDEO_HARDWARE_STATE_HEADER * PVIDEO_HARDWARE_STATE_HEADER
struct _VIDEO_POINTER_POSITION * PVIDEO_POINTER_POSITION
struct _VIDEO_LOAD_FONT_INFORMATION VIDEO_LOAD_FONT_INFORMATION
struct _DXGK_WIN32K_PARAM_DATA * PDXGK_WIN32K_PARAM_DATA
struct VIDEO_CLUT * PVIDEO_CLUT
struct _VIDEO_PALETTE_DATA * PVIDEO_PALETTE_DATA
struct _VIDEO_CURSOR_POSITION * PVIDEO_CURSOR_POSITION
struct _VIDEO_WIN32K_CALLBACKS VIDEO_WIN32K_CALLBACKS
struct _VIDEO_CURSOR_POSITION VIDEO_CURSOR_POSITION
struct _VIDEO_COLOR_CAPABILITIES * PVIDEO_COLOR_CAPABILITIES
struct _VIDEO_HARDWARE_STATE * PVIDEO_HARDWARE_STATE
struct _VIDEO_DEVICE_SESSION_STATUS VIDEO_DEVICE_SESSION_STATUS
struct _VIDEO_NUM_MODES VIDEO_NUM_MODES
struct _DISPLAY_BRIGHTNESS * PDISPLAY_BRIGHTNESS
struct _VIDEO_CLUTDATA * PVIDEO_CLUTDATA
struct _VIDEO_BANK_SELECT * PVIDEO_BANK_SELECT
struct _VIDEO_MEMORY_INFORMATION VIDEO_MEMORY_INFORMATION
struct _ENG_EVENT ENG_EVENT
struct _VIDEO_SHARE_MEMORY VIDEO_SHARE_MEMORY
struct _VIDEO_CLUTDATA VIDEO_CLUTDATA
struct _VIDEO_BANK_SELECT VIDEO_BANK_SELECT
struct _DXGK_WIN32K_PARAM_DATA DXGK_WIN32K_PARAM_DATA
struct _VIDEO_MODE_INFORMATION VIDEO_MODE_INFORMATION
enum _VIDEO_POWER_STATE VIDEO_POWER_STATE
struct tagVIDEO_MONITOR_DESCRIPTOR * PVIDEO_MONITOR_DESCRIPTOR
struct tagVIDEO_MONITOR_DEVICE VIDEO_MONITOR_DEVICE
struct _VIDEO_SHARE_MEMORY * PVIDEO_SHARE_MEMORY
struct _VIDEO_POINTER_ATTRIBUTES * PVIDEO_POINTER_ATTRIBUTES
enum _VIDEO_POWER_STATE * PVIDEO_POWER_STATE
struct _VIDEO_WIN32K_CALLBACKS * PVIDEO_WIN32K_CALLBACKS
struct _ENG_EVENT * PENG_EVENT
struct _VIDEO_POINTER_CAPABILITIES * PVIDEO_POINTER_CAPABILITIES
struct _VIDEO_POWER_MANAGEMENT VIDEO_POWER_MANAGEMENT
struct _VIDEO_MEMORY * PVIDEO_MEMORY
#define DEFINE_GUID(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8)
ULONG NumPathArrayElements
ULONG NumModeArrayElements
ULONG PlanarHCEnableCodeOffset
ULONG PlanarHCDisableCodeOffset
ULONG PlanarHCBankingType
ULONG PlanarHCGranularity
ULONG PlanarHCBankCodeOffset
PVIDEO_HARDWARE_STATE_HEADER StateHeader
PVOID RequestedVirtualAddress
ULONG ModeInformationLength
PVOID RequestedVirtualAddress
VIDEO_WIN32K_CALLBACKS_PARAMS_TYPE CalloutType
IN PVIDEO_WIN32K_CALLOUT Callout
OUT HANDLE pPhysDeviceObject
_In_ WDFIOTARGET _In_ PWDF_REQUEST_COMPLETION_PARAMS Params
_Must_inspect_result_ _In_ WDFIORESLIST _In_ PIO_RESOURCE_DESCRIPTOR Descriptor