diff --git a/reactos/include/psdk/ntddvdeo.h b/reactos/include/psdk/ntddvdeo.h index 6bf65a42a17..728f5a61d11 100644 --- a/reactos/include/psdk/ntddvdeo.h +++ b/reactos/include/psdk/ntddvdeo.h @@ -20,9 +20,14 @@ * */ -#ifndef _NTDDVDEO_ +#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" { #endif @@ -32,12 +37,10 @@ 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) @@ -179,13 +182,91 @@ DEFINE_GUID(GUID_DEVINTERFACE_DISPLAY_ADAPTER, \ #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_MEMORY { - PVOID RequestedVirtualAddress; + PVOID RequestedVirtualAddress; } VIDEO_MEMORY, *PVIDEO_MEMORY; typedef struct _VIDEO_MEMORY_INFORMATION { @@ -482,4 +563,4 @@ typedef struct _DISPLAY_BRIGHTNESS { } #endif -#endif /* _NTDDVDEO_ */ +#endif /* GUID_DEFS_ONLY */