*
*/
-#ifndef __NTDDVDEO_H
-#define __NTDDVDEO_H
+#pragma once
+#define _NTDDVDEO_
+
+DEFINE_GUID(GUID_DEVINTERFACE_DISPLAY_ADAPTER, \
+ 0x5b45201d, 0xf2f2, 0x4f3b, 0x85, 0xbb, 0x30, 0xff, 0x1f, 0x95, 0x35, 0x99);
+
+#ifndef GUID_DEFS_ONLY
#ifdef __cplusplus
extern "C" {
#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_ENABLE_VDM \
CTL_CODE(FILE_DEVICE_VIDEO, 0x00, METHOD_BUFFERED, FILE_ANY_ACCESS)
-
+
#define IOCTL_VIDEO_DISABLE_VDM \
CTL_CODE(FILE_DEVICE_VIDEO, 0x01, 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_SET_COLOR_LUT_DATA \
+ CTL_CODE(FILE_DEVICE_VIDEO, 0x11f, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
#define IOCTL_VIDEO_VALIDATE_CHILD_STATE_CONFIGURATION \
CTL_CODE(FILE_DEVICE_VIDEO, 0x121, METHOD_BUFFERED, FILE_ANY_ACCESS)
-
+#define IOCTL_VIDEO_SET_BANK_POSITION \
+ CTL_CODE(FILE_DEVICE_VIDEO, 0x124, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_VIDEO_QUERY_SUPPORTED_BRIGHTNESS \
+ CTL_CODE(FILE_DEVICE_VIDEO, 0x125, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_VIDEO_QUERY_DISPLAY_BRIGHTNESS \
+ CTL_CODE(FILE_DEVICE_VIDEO, 0x126, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_VIDEO_SET_DISPLAY_BRIGHTNESS \
+ CTL_CODE(FILE_DEVICE_VIDEO, 0x127, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+typedef struct _VIDEO_VDM {
+ HANDLE ProcessHandle;
+} VIDEO_VDM, *PVIDEO_VDM;
+
+typedef struct _VIDEO_REGISTER_VDM {
+ ULONG MinimumStateSize;
+} VIDEO_REGISTER_VDM, *PVIDEO_REGISTER_VDM;
+
+typedef struct tagVIDEO_MONITOR_DEVICE {
+ ULONG flag;
+ ULONG HwID;
+ BOOLEAN Internal;
+} VIDEO_MONITOR_DEVICE, *PVIDEO_MONITOR_DEVICE;
+
+typedef struct tagVIDEO_MONITOR_DESCRIPTOR {
+ ULONG DescriptorSize;
+ UCHAR Descriptor[1];
+} VIDEO_MONITOR_DESCRIPTOR, *PVIDEO_MONITOR_DESCRIPTOR;
+
+typedef enum _VIDEO_WIN32K_CALLBACKS_PARAMS_TYPE {
+ VideoPowerNotifyCallout = 1,
+ VideoDisplaySwitchCallout,
+ VideoEnumChildPdoNotifyCallout,
+ VideoFindAdapterCallout,
+ VideoWakeupCallout,
+ VideoChangeDisplaySettingsCallout,
+ VideoPnpNotifyCallout,
+ VideoDxgkDisplaySwitchCallout,
+ VideoDxgkMonitorEventCallout,
+ VideoDxgkFindAdapterTdrCallout
+} VIDEO_WIN32K_CALLBACKS_PARAMS_TYPE;
+
+#define DXGK_WIN32K_PARAM_FLAG_UPDATEREGISTRY 1
+#define DXGK_WIN32K_PARAM_FLAG_MODESWITCH 2
+#define DXGK_WIN32K_PARAM_FLAG_DISABLEVIEW 4
+
+typedef struct _DXGK_WIN32K_PARAM_DATA
+{
+ PVOID PathsArray;
+ PVOID ModesArray;
+ ULONG NumPathArrayElements;
+ ULONG NumModeArrayElements;
+ ULONG SDCFlags;
+} DXGK_WIN32K_PARAM_DATA, *PDXGK_WIN32K_PARAM_DATA;
+
+typedef struct _VIDEO_WIN32K_CALLBACKS_PARAMS {
+ VIDEO_WIN32K_CALLBACKS_PARAMS_TYPE CalloutType;
+ PVOID PhysDisp;
+ ULONG_PTR Param;
+ LONG Status;
+} VIDEO_WIN32K_CALLBACKS_PARAMS, *PVIDEO_WIN32K_CALLBACKS_PARAMS;
+
+typedef
+VOID
+(*PVIDEO_WIN32K_CALLOUT)(
+ _In_ PVOID Params);
+
+typedef struct _VIDEO_WIN32K_CALLBACKS {
+ IN PVOID PhysDisp;
+ IN PVIDEO_WIN32K_CALLOUT Callout;
+ OUT ULONG bACPI;
+ OUT HANDLE pPhysDeviceObject;
+ OUT ULONG DualviewFlags;
+} VIDEO_WIN32K_CALLBACKS, *PVIDEO_WIN32K_CALLBACKS;
+
+typedef struct _VIDEO_DEVICE_SESSION_STATUS {
+ ULONG bEnable;
+ ULONG bSuccess;
+} VIDEO_DEVICE_SESSION_STATUS, *PVIDEO_DEVICE_SESSION_STATUS;
typedef struct _VIDEO_MEMORY {
- PVOID RequestedVirtualAddress;
+ PVOID RequestedVirtualAddress;
} VIDEO_MEMORY, *PVIDEO_MEMORY;
typedef struct _VIDEO_MEMORY_INFORMATION {
ULONG fFlags;
} ENG_EVENT, *PENG_EVENT;
+typedef struct _DISPLAY_BRIGHTNESS {
+ UCHAR ucDisplayPolicy;
+ UCHAR ucACBrightness;
+ UCHAR ucDCBrightness;
+} DISPLAY_BRIGHTNESS, *PDISPLAY_BRIGHTNESS;
+
+#define DISPLAYPOLICY_AC 0x00000001
+#define DISPLAYPOLICY_DC 0x00000002
+#define DISPLAYPOLICY_BOTH 0x00000003
+
#ifdef __cplusplus
}
#endif
-#endif /* __NTDDVDEO_H */
+#endif /* GUID_DEFS_ONLY */