[VIDEOPRT]
[reactos.git] / reactos / include / psdk / ntddvdeo.h
index 6bf65a4..8fcd361 100644 (file)
  *
  */
 
-#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,96 @@ 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_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 {
@@ -478,8 +564,9 @@ typedef struct _DISPLAY_BRIGHTNESS {
 #define DISPLAYPOLICY_DC                0x00000002
 #define DISPLAYPOLICY_BOTH              0x00000003
 
+
 #ifdef __cplusplus
 }
 #endif
 
-#endif /* _NTDDVDEO_ */
+#endif /* GUID_DEFS_ONLY */