15#if !defined(_D3DKMDDI_H_) && \
16 !defined(_D3DKMDDI_PEXT_H_) && \
17 !defined(_DXGDMM_H_) && \
18 !defined(_VIDPRIV_H_) && \
19 !defined(_DISPMPRT_H_) && \
20 !defined(_DMM_DIAG_H_) && \
21 !defined(_D3DKMTHK_H_)
22 #error This header should not be included directly!
29#define NTSTATUS int32_t
37#define STATUS_SUCCESS ((NTSTATUS)(0))
38#define STATUS_OBJECT_NAME_INVALID ((NTSTATUS)(0xC0000033L))
39#define STATUS_DEVICE_REMOVED ((NTSTATUS)(0xC00002B6L))
40#define STATUS_INVALID_HANDLE ((NTSTATUS)(0xC0000008L))
41#define STATUS_ILLEGAL_INSTRUCTION ((NTSTATUS)(0xC000001DL))
42#define STATUS_NOT_IMPLEMENTED ((NTSTATUS)(0xC0000002L))
43#define STATUS_PENDING ((NTSTATUS)(0x00000103L))
44#define STATUS_ACCESS_DENIED ((NTSTATUS)(0xC0000022L))
45#define STATUS_BUFFER_TOO_SMALL ((NTSTATUS)(0xC0000023L))
46#define STATUS_OBJECT_TYPE_MISMATCH ((NTSTATUS)(0xC0000024L))
47#define STATUS_GRAPHICS_ALLOCATION_BUSY ((NTSTATUS)(0xC01E0102L))
48#define STATUS_NOT_SUPPORTED ((NTSTATUS)(0xC00000BBL))
49#define STATUS_TIMEOUT ((NTSTATUS)(0x00000102L))
50#define STATUS_INVALID_PARAMETER ((NTSTATUS)(0xC000000DL))
51#define STATUS_NO_MEMORY ((NTSTATUS)(0xC0000017L))
52#define STATUS_OBJECT_NAME_COLLISION ((NTSTATUS)(0xC0000035L))
53#define STATUS_OBJECT_NAME_NOT_FOUND ((NTSTATUS)(0xC0000034L))
54#define STATUS_UNSUCCESSFUL ((NTSTATUS)(0xC0000001L))
55#define STATUS_INVALID_PARAMETER ((NTSTATUS)(0xC000000DL))
56#define NT_SUCCESS(status) (status >= 0)
87#pragma region Desktop Family
88#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
91#pragma warning(disable:4201)
92#pragma warning(disable:4214)
98#if defined(__REACTOS__) || ((NTDDI_VERSION >= NTDDI_LONGHORN) || defined(D3DKMDT_SPECIAL_MULTIPLATFORM_TOOL))
103#define D3DKMDT_MAX_OVERLAYS_BITCOUNT 2
104#define D3DKMDT_MAX_OVERLAYS (1 << D3DKMDT_MAX_OVERLAYS_BITCOUNT)
119typedef VOID* D3DKMDT_ADAPTER;
127#define D3DKMDT_DIMENSION_UNINITIALIZED (UINT)(~0)
128#define D3DKMDT_FREQUENCY_UNINITIALIZED (UINT)(~0)
132#define D3DKMDT_DIMENSION_NOTSPECIFIED (UINT)(~1)
133#define D3DKMDT_FREQUENCY_NOTSPECIFIED (UINT)(~1)
146typedef enum _D3DKMDT_VIDEO_SIGNAL_STANDARD
148 D3DKMDT_VSS_UNINITIALIZED = 0,
151 D3DKMDT_VSS_VESA_DMT = 1,
152 D3DKMDT_VSS_VESA_GTF = 2,
153 D3DKMDT_VSS_VESA_CVT = 3,
157 D3DKMDT_VSS_APPLE = 5,
160 D3DKMDT_VSS_NTSC_M = 6,
161 D3DKMDT_VSS_NTSC_J = 7,
162 D3DKMDT_VSS_NTSC_443 = 8,
163 D3DKMDT_VSS_PAL_B = 9,
164 D3DKMDT_VSS_PAL_B1 = 10,
165 D3DKMDT_VSS_PAL_G = 11,
166 D3DKMDT_VSS_PAL_H = 12,
167 D3DKMDT_VSS_PAL_I = 13,
168 D3DKMDT_VSS_PAL_D = 14,
169 D3DKMDT_VSS_PAL_N = 15,
170 D3DKMDT_VSS_PAL_NC = 16,
171 D3DKMDT_VSS_SECAM_B = 17,
172 D3DKMDT_VSS_SECAM_D = 18,
173 D3DKMDT_VSS_SECAM_G = 19,
174 D3DKMDT_VSS_SECAM_H = 20,
175 D3DKMDT_VSS_SECAM_K = 21,
176 D3DKMDT_VSS_SECAM_K1 = 22,
177 D3DKMDT_VSS_SECAM_L = 23,
178 D3DKMDT_VSS_SECAM_L1 = 24,
181 D3DKMDT_VSS_EIA_861 = 25,
182 D3DKMDT_VSS_EIA_861A = 26,
183 D3DKMDT_VSS_EIA_861B = 27,
186 D3DKMDT_VSS_PAL_K = 28,
187 D3DKMDT_VSS_PAL_K1 = 29,
188 D3DKMDT_VSS_PAL_L = 30,
189 D3DKMDT_VSS_PAL_M = 31,
191 D3DKMDT_VSS_OTHER = 255
193D3DKMDT_VIDEO_SIGNAL_STANDARD;
203typedef struct _D3DKMDT_VIDEO_PRESENT_SOURCE
206 D3DDDI_VIDEO_PRESENT_SOURCE_ID
Id;
211D3DKMDT_VIDEO_PRESENT_SOURCE;
220typedef enum _D3DKMDT_VIDPN_SOURCE_MODE_TYPE
222 D3DKMDT_RMT_UNINITIALIZED = 0,
223 D3DKMDT_RMT_GRAPHICS = 1,
224 D3DKMDT_RMT_TEXT = 2,
225 D3DKMDT_RMT_GRAPHICS_STEREO = 3,
226 D3DKMDT_RMT_GRAPHICS_STEREO_ADVANCED_SCAN = 4
228D3DKMDT_VIDPN_SOURCE_MODE_TYPE;
242typedef enum _D3DKMDT_PIXEL_VALUE_ACCESS_MODE
244 D3DKMDT_PVAM_UNINITIALIZED = 0,
245 D3DKMDT_PVAM_DIRECT = 1,
246 D3DKMDT_PVAM_PRESETPALETTE = 2,
247 D3DKMDT_PVAM_SETTABLEPALETTE = 3,
249D3DKMDT_PIXEL_VALUE_ACCESS_MODE;
279typedef enum _D3DKMDT_COLOR_BASIS
281 D3DKMDT_CB_UNINITIALIZED = 0,
282 D3DKMDT_CB_INTENSITY = 1,
284 D3DKMDT_CB_SCRGB = 3,
285 D3DKMDT_CB_YCBCR = 4,
286 D3DKMDT_CB_YPBPR = 5,
300typedef struct _D3DKMDT_COLOR_COEFF_DYNAMIC_RANGES
307D3DKMDT_COLOR_COEFF_DYNAMIC_RANGES;
315typedef struct _D3DKMDT_2DREGION
328typedef D3DKMDT_2DREGION D3DKMDT_2DOFFSET;
344typedef struct _D3DKMDT_GRAPHICS_RENDERING_FORMAT
347 D3DKMDT_2DREGION PrimSurfSize;
351 D3DKMDT_2DREGION VisibleRegionSize;
360 D3DKMDT_COLOR_BASIS ColorBasis;
363 D3DKMDT_PIXEL_VALUE_ACCESS_MODE PixelValueAccessMode;
365D3DKMDT_GRAPHICS_RENDERING_FORMAT;
368typedef enum _D3DKMDT_TEXT_RENDERING_FORMAT
370 D3DKMDT_TRF_UNINITIALIZED = 0
372D3DKMDT_TEXT_RENDERING_FORMAT;
377typedef UINT D3DKMDT_VIDEO_PRESENT_SOURCE_MODE_ID;
387typedef struct _D3DKMDT_VIDPN_SOURCE_MODE
389 D3DKMDT_VIDEO_PRESENT_SOURCE_MODE_ID
Id;
392 D3DKMDT_VIDPN_SOURCE_MODE_TYPE
Type;
397 D3DKMDT_GRAPHICS_RENDERING_FORMAT
Graphics;
400 D3DKMDT_TEXT_RENDERING_FORMAT
Text;
404D3DKMDT_VIDPN_SOURCE_MODE;
421typedef enum _DXGK_CHILD_DEVICE_HPD_AWARENESS {
422 HpdAwarenessUninitialized = 0,
423 HpdAwarenessAlwaysConnected = 1,
424 HpdAwarenessNone = 2,
425 HpdAwarenessPolled = 3,
426 HpdAwarenessInterruptible = 4
427} DXGK_CHILD_DEVICE_HPD_AWARENESS, *PDXGK_CHILD_DEVICE_HPD_AWARENESS;
432typedef enum _D3DKMDT_MONITOR_ORIENTATION
434 D3DKMDT_MO_UNINITIALIZED = 0,
436 D3DKMDT_MO_90DEG = 2,
437 D3DKMDT_MO_180DEG = 3,
438 D3DKMDT_MO_270DEG = 4
440D3DKMDT_MONITOR_ORIENTATION;
449typedef enum _D3DKMDT_VIDEO_OUTPUT_TECHNOLOGY
451 D3DKMDT_VOT_UNINITIALIZED = -2,
452 D3DKMDT_VOT_OTHER = -1,
453 D3DKMDT_VOT_HD15 = 0,
454 D3DKMDT_VOT_SVIDEO = 1,
455 D3DKMDT_VOT_COMPOSITE_VIDEO = 2,
456 D3DKMDT_VOT_COMPONENT_VIDEO = 3,
458 D3DKMDT_VOT_HDMI = 5,
459 D3DKMDT_VOT_LVDS = 6,
460 D3DKMDT_VOT_D_JPN = 8,
462 D3DKMDT_VOT_DISPLAYPORT_EXTERNAL = 10,
463 D3DKMDT_VOT_DISPLAYPORT_EMBEDDED = 11,
464 D3DKMDT_VOT_UDI_EXTERNAL = 12,
465 D3DKMDT_VOT_UDI_EMBEDDED = 13,
466 D3DKMDT_VOT_SDTVDONGLE = 14,
467#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM1_3_M1)
468 D3DKMDT_VOT_MIRACAST = 15,
469#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_1)
470 D3DKMDT_VOT_INDIRECT_WIRED = 16,
473 D3DKMDT_VOT_INTERNAL = 0x80000000,
476 D3DKMDT_VOT_SVIDEO_4PIN = D3DKMDT_VOT_SVIDEO,
477 D3DKMDT_VOT_SVIDEO_7PIN = D3DKMDT_VOT_SVIDEO,
478 D3DKMDT_VOT_RF = D3DKMDT_VOT_COMPOSITE_VIDEO,
479 D3DKMDT_VOT_RCA_3COMPONENT = D3DKMDT_VOT_COMPONENT_VIDEO,
480 D3DKMDT_VOT_BNC = D3DKMDT_VOT_COMPONENT_VIDEO,
482D3DKMDT_VIDEO_OUTPUT_TECHNOLOGY;
484typedef enum _DXGKMDT_OPM_CONNECTOR_TYPE
486 DXGKMDT_OPM_CONNECTOR_TYPE_OTHER = -1,
487 DXGKMDT_OPM_CONNECTOR_TYPE_HD15 = 0,
488 DXGKMDT_OPM_CONNECTOR_TYPE_SVIDEO = 1,
489 DXGKMDT_OPM_CONNECTOR_TYPE_COMPOSITE_VIDEO = 2,
490 DXGKMDT_OPM_CONNECTOR_TYPE_COMPONENT_VIDEO = 3,
491 DXGKMDT_OPM_CONNECTOR_TYPE_DVI = 4,
492 DXGKMDT_OPM_CONNECTOR_TYPE_HDMI = 5,
493 DXGKMDT_OPM_CONNECTOR_TYPE_LVDS = 6,
494 DXGKMDT_OPM_CONNECTOR_TYPE_D_JPN = 8,
495 DXGKMDT_OPM_CONNECTOR_TYPE_SDI = 9,
496 DXGKMDT_OPM_CONNECTOR_TYPE_DISPLAYPORT_EXTERNAL = 10,
497 DXGKMDT_OPM_CONNECTOR_TYPE_DISPLAYPORT_EMBEDDED = 11,
498 DXGKMDT_OPM_CONNECTOR_TYPE_UDI_EXTERNAL = 12,
499 DXGKMDT_OPM_CONNECTOR_TYPE_UDI_EMBEDDED = 13,
500 DXGKMDT_OPM_CONNECTOR_TYPE_RESERVED = 14,
501 DXGKMDT_OPM_CONNECTOR_TYPE_MIRACAST = 15,
502 DXGKMDT_OPM_CONNECTOR_TYPE_TRANSPORT_AGNOSTIC_DIGITAL_MODE_A = 16,
503 DXGKMDT_OPM_CONNECTOR_TYPE_TRANSPORT_AGNOSTIC_DIGITAL_MODE_B = 17,
504 DXGKMDT_OPM_COPP_COMPATIBLE_CONNECTOR_TYPE_INTERNAL = 0x80000000
505} DXGKMDT_OPM_CONNECTOR_TYPE;
510typedef enum _D3DKMDT_MONITOR_ORIENTATION_AWARENESS
512 D3DKMDT_MOA_UNINITIALIZED = 0,
513 D3DKMDT_MOA_NONE = 1,
514 D3DKMDT_MOA_POLLED = 2,
515 D3DKMDT_MOA_INTERRUPTIBLE = 3
517D3DKMDT_MONITOR_ORIENTATION_AWARENESS;
523typedef struct _D3DKMDT_VIDEO_PRESENT_TARGET
526 D3DDDI_VIDEO_PRESENT_TARGET_ID
Id;
529 D3DKMDT_VIDEO_OUTPUT_TECHNOLOGY VideoOutputTechnology;
532 DXGK_CHILD_DEVICE_HPD_AWARENESS VideoOutputHpdAwareness;
534 D3DKMDT_MONITOR_ORIENTATION_AWARENESS MonitorOrientationAwareness;
545D3DKMDT_VIDEO_PRESENT_TARGET;
551typedef enum _D3DKMDT_GTFCOMPLIANCE
553 D3DKMDT_GTF_UNINITIALIZED = 0,
554 D3DKMDT_GTF_COMPLIANT = 1,
555 D3DKMDT_GTF_NOTCOMPLIANT = 2
557D3DKMDT_GTFCOMPLIANCE;
563typedef enum _D3DKMDT_MODE_PREFERENCE
565 D3DKMDT_MP_UNINITIALIZED = 0,
566 D3DKMDT_MP_PREFERRED = 1,
567 D3DKMDT_MP_NOTPREFERRED = 2,
569D3DKMDT_MODE_PREFERENCE;
587typedef struct _D3DKMDT_VIDEO_SIGNAL_INFO
590 D3DKMDT_VIDEO_SIGNAL_STANDARD VideoStandard;
593 D3DKMDT_2DREGION TotalSize;
596 D3DKMDT_2DREGION ActiveSize;
599 D3DDDI_RATIONAL VSyncFreq;
602 D3DDDI_RATIONAL HSyncFreq;
609#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM1_3_M1)
614 UINT ScanLineOrdering : 3;
616 D3DDDI_VIDEO_SIGNAL_SCANLINE_ORDERING ScanLineOrdering : 3;
620 UINT VSyncFreqDivider : 6;
624 } AdditionalSignalInfo;
628 D3DDDI_VIDEO_SIGNAL_SCANLINE_ORDERING ScanLineOrdering;
631D3DKMDT_VIDEO_SIGNAL_INFO;
634#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_2)
636#define D3DKMDT_BITS_PER_COMPONENT_06 0x01
637#define D3DKMDT_BITS_PER_COMPONENT_08 0x02
638#define D3DKMDT_BITS_PER_COMPONENT_10 0x04
639#define D3DKMDT_BITS_PER_COMPONENT_12 0x08
640#define D3DKMDT_BITS_PER_COMPONENT_14 0x10
641#define D3DKMDT_BITS_PER_COMPONENT_16 0x20
648typedef UINT D3DKMDT_VIDEO_PRESENT_TARGET_MODE_ID;
659typedef union _D3DKMDT_WIRE_FORMAT_AND_PREFERENCE
663 D3DKMDT_MODE_PREFERENCE Preference : 2;
673} D3DKMDT_WIRE_FORMAT_AND_PREFERENCE, *PD3DKMDT_WIRE_FORMAT_AND_PREFERENCE;
678typedef struct _D3DKMDT_VIDPN_TARGET_MODE
681 D3DKMDT_VIDEO_PRESENT_TARGET_MODE_ID
Id;
684 D3DKMDT_VIDEO_SIGNAL_INFO VideoSignalInfo;
686#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_2)
689 D3DKMDT_WIRE_FORMAT_AND_PREFERENCE WireFormatAndPreference;
692 D3DKMDT_MODE_PREFERENCE Preference : 2;
699 D3DKMDT_MODE_PREFERENCE Preference;
702#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_9)
704 D3DDDI_RATIONAL MinimumVSyncFreq;
709D3DKMDT_VIDPN_TARGET_MODE;
715#define DISPLAYID_DETAILED_TIMING_TYPE_I_SIZE 20
718enum _DISPLAYID_DETAILED_TIMING_TYPE_I_ASPECT_RATIO
720 DIDDT1_AspectRatio_1x1 = 0,
721 DIDDT1_AspectRatio_5x4 = 1,
722 DIDDT1_AspectRatio_4x3 = 2,
723 DIDDT1_AspectRatio_15x9 = 3,
724 DIDDT1_AspectRatio_16x9 = 4,
725 DIDDT1_AspectRatio_16x10 = 5,
728enum _DISPLAYID_DETAILED_TIMING_TYPE_I_SCANNING_MODE
730 DIDDT1_Progressive = 0,
731 DIDDT1_Interlaced = 1,
734enum _DISPLAYID_DETAILED_TIMING_TYPE_I_STEREO_MODE
736 DIDDT1_Monoscopic = 0,
738 DIDDT1_Dependent = 2,
741enum _DISPLAYID_DETAILED_TIMING_TYPE_I_SYNC_POLARITY
743 DIDDT1_Sync_Positive = 0,
744 DIDDT1_Sync_Negative = 1,
747typedef struct _DISPLAYID_DETAILED_TIMING_TYPE_I
751 ULONG PixelClock : 24;
752 ULONG AspectRatio : 3;
754 ULONG ScanningType : 1;
755 ULONG StereoMode : 2;
756 ULONG PreferredTiming : 1;
759 USHORT HorizontalActivePixels;
760 USHORT HorizontalBlankPixels;
763 USHORT HorizontalFrontPorch : 15;
764 USHORT HorizontalSyncPolarity : 1;
766 USHORT HorizontalSyncWidth;
768 USHORT VerticalActiveLines;
769 USHORT VerticalBlankLines;
772 USHORT VerticalFrontPorch : 15;
773 USHORT VerticalSyncPolarity : 1;
776}DISPLAYID_DETAILED_TIMING_TYPE_I;
778C_ASSERT(
sizeof(DISPLAYID_DETAILED_TIMING_TYPE_I) == DISPLAYID_DETAILED_TIMING_TYPE_I_SIZE);
782typedef struct _DXGK_TARGETMODE_DETAIL_TIMING
785 D3DKMDT_VIDEO_SIGNAL_STANDARD VideoStandard;
791 DISPLAYID_DETAILED_TIMING_TYPE_I DetailTiming;
792}DXGK_TARGETMODE_DETAIL_TIMING;
796typedef struct _D3DKMDT_VIDPN_HW_CAPABILITY
798 UINT DriverRotation : 1;
799 UINT DriverScaling : 1;
800 UINT DriverCloning : 1;
801 UINT DriverColorConvert : 1;
802 UINT DriverLinkedAdapaterOutput : 1;
803 UINT DriverRemoteDisplay : 1;
806D3DKMDT_VIDPN_HW_CAPABILITY;
811typedef UINT D3DKMDT_MONITOR_SOURCE_MODE_ID;
816typedef enum _D3DKMDT_MONITOR_CAPABILITIES_ORIGIN
818 D3DKMDT_MCO_UNINITIALIZED = 0,
819 D3DKMDT_MCO_DEFAULTMONITORPROFILE = 1,
820 D3DKMDT_MCO_MONITORDESCRIPTOR = 2,
821 D3DKMDT_MCO_MONITORDESCRIPTOR_REGISTRYOVERRIDE = 3,
822 D3DKMDT_MCO_SPECIFICCAP_REGISTRYOVERRIDE = 4,
823 D3DKMDT_MCO_DRIVER = 5,
825D3DKMDT_MONITOR_CAPABILITIES_ORIGIN;
829typedef enum _D3DKMDT_MONITOR_TIMING_TYPE
831 D3DKMDT_MTT_UNINITIALIZED = 0,
832 D3DKMDT_MTT_ESTABLISHED = 1,
833 D3DKMDT_MTT_STANDARD = 2,
834 D3DKMDT_MTT_EXTRASTANDARD = 3,
835 D3DKMDT_MTT_DETAILED = 4,
836 D3DKMDT_MTT_DEFAULTMONITORPROFILE = 5,
837 D3DKMDT_MTT_DRIVER = 6,
839D3DKMDT_MONITOR_TIMING_TYPE;
843typedef struct _D3DKMDT_MONITOR_SOURCE_MODE
846 D3DKMDT_MONITOR_SOURCE_MODE_ID
Id;
849 D3DKMDT_VIDEO_SIGNAL_INFO VideoSignalInfo;
852 D3DKMDT_COLOR_BASIS ColorBasis;
857 D3DKMDT_COLOR_COEFF_DYNAMIC_RANGES ColorCoeffDynamicRanges;
860 D3DKMDT_MONITOR_CAPABILITIES_ORIGIN Origin;
863 D3DKMDT_MODE_PREFERENCE Preference;
865D3DKMDT_MONITOR_SOURCE_MODE;
870typedef struct _D3DKMDT_FREQUENCY_RANGE
873 D3DDDI_RATIONAL MinVSyncFreq;
876 D3DDDI_RATIONAL MaxVSyncFreq;
879 D3DDDI_RATIONAL MinHSyncFreq;
882 D3DDDI_RATIONAL MaxHSyncFreq;
884D3DKMDT_FREQUENCY_RANGE;
889typedef enum _D3DKMDT_MONITOR_FREQUENCY_RANGE_CONSTRAINT
891 D3DKMDT_MFRC_UNINITIALIZED = 0,
892 D3DKMDT_MFRC_ACTIVESIZE = 1,
893 D3DKMDT_MFRC_MAXPIXELRATE = 2
895D3DKMDT_MONITOR_FREQUENCY_RANGE_CONSTRAINT;
900typedef struct _D3DKMDT_MONITOR_FREQUENCY_RANGE
903 D3DKMDT_MONITOR_CAPABILITIES_ORIGIN Origin;
906 D3DKMDT_FREQUENCY_RANGE RangeLimits;
909 D3DKMDT_MONITOR_FREQUENCY_RANGE_CONSTRAINT ConstraintType;
915 D3DKMDT_2DREGION ActiveSize;
922D3DKMDT_MONITOR_FREQUENCY_RANGE;
932typedef SIZE_T D3DKMDT_VIDPN_PRESENT_PATH_INDEX;
935typedef enum _D3DKMDT_VIDPN_PRESENT_PATH_SCALING
937 D3DKMDT_VPPS_UNINITIALIZED = 0,
942 D3DKMDT_VPPS_IDENTITY = 1,
947 D3DKMDT_VPPS_CENTERED = 2,
950 D3DKMDT_VPPS_STRETCHED = 3,
953 D3DKMDT_VPPS_ASPECTRATIOCENTEREDMAX = 4,
956 D3DKMDT_VPPS_CUSTOM = 5,
960 D3DKMDT_VPPS_RESERVED1 = 253,
963 D3DKMDT_VPPS_UNPINNED = 254,
966 D3DKMDT_VPPS_NOTSPECIFIED = 255
968D3DKMDT_VIDPN_PRESENT_PATH_SCALING;
972typedef enum _D3DKMDT_VIDPN_PRESENT_PATH_ROTATION
974 D3DKMDT_VPPR_UNINITIALIZED = 0,
977 D3DKMDT_VPPR_IDENTITY = 1,
980 D3DKMDT_VPPR_ROTATE90 = 2,
983 D3DKMDT_VPPR_ROTATE180 = 3,
986 D3DKMDT_VPPR_ROTATE270 = 4,
988#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM1_3_PATH_INDEPENDENT_ROTATION)
990 D3DKMDT_VPPR_IDENTITY_OFFSET90 = 5,
993 D3DKMDT_VPPR_ROTATE90_OFFSET90 = 6,
996 D3DKMDT_VPPR_ROTATE180_OFFSET90 = 7,
999 D3DKMDT_VPPR_ROTATE270_OFFSET90 = 8,
1002 D3DKMDT_VPPR_IDENTITY_OFFSET180 = 9,
1005 D3DKMDT_VPPR_ROTATE90_OFFSET180 = 10,
1008 D3DKMDT_VPPR_ROTATE180_OFFSET180 = 11,
1011 D3DKMDT_VPPR_ROTATE270_OFFSET180 = 12,
1014 D3DKMDT_VPPR_IDENTITY_OFFSET270 = 13,
1017 D3DKMDT_VPPR_ROTATE90_OFFSET270 = 14,
1020 D3DKMDT_VPPR_ROTATE180_OFFSET270 = 15,
1023 D3DKMDT_VPPR_ROTATE270_OFFSET270 = 16,
1027 D3DKMDT_VPPR_UNPINNED = 254,
1030 D3DKMDT_VPPR_NOTSPECIFIED = 255
1032D3DKMDT_VIDPN_PRESENT_PATH_ROTATION;
1034#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM1_3_PATH_INDEPENDENT_ROTATION)
1037D3DKMDT_VIDPN_PRESENT_PATH_ROTATION D3DKMDT_VPPR_GET_OFFSET_ROTATION(D3DKMDT_VIDPN_PRESENT_PATH_ROTATION Rotation)
1039 if ((Rotation >= D3DKMDT_VPPR_IDENTITY) &&
1040 (Rotation <= D3DKMDT_VPPR_ROTATE270_OFFSET270))
1042 Rotation = (D3DKMDT_VIDPN_PRESENT_PATH_ROTATION)(((Rotation - 1) / 4) + 1);
1048D3DKMDT_VIDPN_PRESENT_PATH_ROTATION D3DKMDT_VPPR_GET_CONTENT_ROTATION_PART(D3DKMDT_VIDPN_PRESENT_PATH_ROTATION Rotation)
1050 if ((Rotation >= D3DKMDT_VPPR_IDENTITY_OFFSET90) &&
1051 (Rotation <= D3DKMDT_VPPR_ROTATE270_OFFSET270))
1053 Rotation = (D3DKMDT_VIDPN_PRESENT_PATH_ROTATION)(((Rotation - 1) % 4) + 1);
1059D3DKMDT_VIDPN_PRESENT_PATH_ROTATION D3DKMDT_VPPR_GET_CONTENT_ROTATION(D3DKMDT_VIDPN_PRESENT_PATH_ROTATION Rotation)
1061 if ((Rotation >= D3DKMDT_VPPR_IDENTITY_OFFSET90) &&
1062 (Rotation <= D3DKMDT_VPPR_ROTATE270_OFFSET270))
1064 D3DKMDT_VIDPN_PRESENT_PATH_ROTATION ContentPart = D3DKMDT_VPPR_GET_CONTENT_ROTATION_PART(Rotation);
1065 D3DKMDT_VIDPN_PRESENT_PATH_ROTATION OffsetPart = D3DKMDT_VPPR_GET_OFFSET_ROTATION(Rotation);
1066 Rotation = (D3DKMDT_VIDPN_PRESENT_PATH_ROTATION)((((ContentPart - 1) + (OffsetPart - 1)) % 4) + 1);
1073#define D3DKMDT_SCALING_SUPPORT_MASK 0x1f;
1076typedef struct _D3DKMDT_VIDPN_PRESENT_PATH_SCALING_SUPPORT
1081 UINT AspectRatioCenteredMax : 1;
1083} D3DKMDT_VIDPN_PRESENT_PATH_SCALING_SUPPORT;
1085#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM1_3_PATH_INDEPENDENT_ROTATION)
1086#define D3DKMDT_ROTATION_SUPPORT_MASK 0xff;
1088#define D3DKMDT_ROTATION_SUPPORT_MASK 0xf;
1092typedef struct _D3DKMDT_VIDPN_PRESENT_PATH_ROTATION_SUPPORT
1098#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM1_3_PATH_INDEPENDENT_ROTATION)
1104} D3DKMDT_VIDPN_PRESENT_PATH_ROTATION_SUPPORT;
1107typedef struct _D3DKMDT_VIDPN_PRESENT_PATH_TRANSFORMATION
1110 D3DKMDT_VIDPN_PRESENT_PATH_SCALING
Scaling;
1113 D3DKMDT_VIDPN_PRESENT_PATH_SCALING_SUPPORT ScalingSupport;
1116 D3DKMDT_VIDPN_PRESENT_PATH_ROTATION Rotation;
1119 D3DKMDT_VIDPN_PRESENT_PATH_ROTATION_SUPPORT RotationSupport;
1120} D3DKMDT_VIDPN_PRESENT_PATH_TRANSFORMATION;
1127typedef enum _D3DKMDT_VIDPN_PRESENT_PATH_IMPORTANCE
1129 D3DKMDT_VPPI_UNINITIALIZED = 0,
1130 D3DKMDT_VPPI_PRIMARY = 1,
1131 D3DKMDT_VPPI_SECONDARY = 2,
1132 D3DKMDT_VPPI_TERTIARY = 3,
1133 D3DKMDT_VPPI_QUATERNARY = 4,
1134 D3DKMDT_VPPI_QUINARY = 5,
1135 D3DKMDT_VPPI_SENARY = 6,
1136 D3DKMDT_VPPI_SEPTENARY = 7,
1137 D3DKMDT_VPPI_OCTONARY = 8,
1138 D3DKMDT_VPPI_NONARY = 9,
1139 D3DKMDT_VPPI_DENARY = 10,
1141D3DKMDT_VIDPN_PRESENT_PATH_IMPORTANCE;
1148typedef enum _D3DKMDT_VIDPN_PRESENT_PATH_CONTENT
1150 D3DKMDT_VPPC_UNINITIALIZED = 0,
1153 D3DKMDT_VPPC_GRAPHICS = 1,
1156 D3DKMDT_VPPC_VIDEO = 2,
1159 D3DKMDT_VPPC_NOTSPECIFIED = 255
1161D3DKMDT_VIDPN_PRESENT_PATH_CONTENT;
1168typedef enum _D3DKMDT_VIDPN_PRESENT_PATH_COPYPROTECTION_TYPE
1170 D3DKMDT_VPPMT_UNINITIALIZED = 0,
1172 D3DKMDT_VPPMT_NOPROTECTION = 1,
1174 D3DKMDT_VPPMT_MACROVISION_APSTRIGGER = 2,
1176 D3DKMDT_VPPMT_MACROVISION_FULLSUPPORT = 3,
1179D3DKMDT_VIDPN_PRESENT_PATH_COPYPROTECTION_TYPE;
1181typedef struct _D3DKMDT_VIDPN_PRESENT_PATH_COPYPROTECTION_SUPPORT
1183 UINT NoProtection : 1;
1184 UINT MacroVisionApsTrigger : 1;
1185 UINT MacroVisionFull : 1;
1188D3DKMDT_VIDPN_PRESENT_PATH_COPYPROTECTION_SUPPORT;
1190#define D3DKMDT_MACROVISION_OEMCOPYPROTECTION_SIZE 256
1192typedef struct _D3DKMDT_VIDPN_PRESENT_PATH_COPYPROTECTION
1195 D3DKMDT_VIDPN_PRESENT_PATH_COPYPROTECTION_TYPE CopyProtectionType;
1196 UINT APSTriggerBits;
1197 BYTE OEMCopyProtection[D3DKMDT_MACROVISION_OEMCOPYPROTECTION_SIZE];
1200 D3DKMDT_VIDPN_PRESENT_PATH_COPYPROTECTION_SUPPORT CopyProtectionSupport;
1201} D3DKMDT_VIDPN_PRESENT_PATH_COPYPROTECTION;
1206typedef struct _D3DKMDT_GAMMA_RAMP
1208 D3DDDI_GAMMARAMP_TYPE
Type;
1214 D3DDDI_GAMMA_RAMP_RGB256x3x16* pRgb256x3x16;
1215 D3DDDI_GAMMA_RAMP_DXGI_1* pDxgi1;
1216#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_3)
1217 D3DKMDT_3x4_COLORSPACE_TRANSFORM* p3x4;
1219#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_6)
1220 D3DKMDT_COLORSPACE_TRANSFORM_MATRIX_V2* pMatrixV2;
1235typedef struct _D3DKMDT_VIDPN_PRESENT_PATH
1237 D3DDDI_VIDEO_PRESENT_SOURCE_ID VidPnSourceId;
1239 D3DDDI_VIDEO_PRESENT_TARGET_ID VidPnTargetId;
1243 D3DKMDT_VIDPN_PRESENT_PATH_IMPORTANCE ImportanceOrdinal;
1246 D3DKMDT_VIDPN_PRESENT_PATH_TRANSFORMATION ContentTransformation;
1254 D3DKMDT_2DOFFSET VisibleFromActiveTLOffset;
1259 D3DKMDT_2DOFFSET VisibleFromActiveBROffset;
1263 D3DKMDT_COLOR_BASIS VidPnTargetColorBasis;
1267 D3DKMDT_COLOR_COEFF_DYNAMIC_RANGES VidPnTargetColorCoeffDynamicRanges;
1271 D3DKMDT_VIDPN_PRESENT_PATH_CONTENT Content;
1274 D3DKMDT_VIDPN_PRESENT_PATH_COPYPROTECTION CopyProtection;
1278 D3DKMDT_GAMMA_RAMP GammaRamp;
1280D3DKMDT_VIDPN_PRESENT_PATH;
1286typedef enum _D3DKMDT_MONITOR_CONNECTIVITY_CHECKS
1288 D3DKMDT_MCC_UNINITIALIZED = 0,
1289 D3DKMDT_MCC_IGNORE = 1,
1290 D3DKMDT_MCC_ENFORCE = 2
1292D3DKMDT_MONITOR_CONNECTIVITY_CHECKS;
1303typedef enum _D3DKMDT_ENUMCOFUNCMODALITY_PIVOT_TYPE
1305 D3DKMDT_EPT_UNINITIALIZED,
1306 D3DKMDT_EPT_VIDPNSOURCE,
1307 D3DKMDT_EPT_VIDPNTARGET,
1308 D3DKMDT_EPT_SCALING,
1309 D3DKMDT_EPT_ROTATION,
1312D3DKMDT_ENUMCOFUNCMODALITY_PIVOT_TYPE;
1318typedef UINT D3DKMDT_MONITOR_DESCRIPTOR_ID;
1320typedef enum _D3DKMDT_MONITOR_DESCRIPTOR_TYPE
1322 D3DKMDT_MDT_UNINITIALIZED = 0,
1323 D3DKMDT_MDT_VESA_EDID_V1_BASEBLOCK = 1,
1324 D3DKMDT_MDT_VESA_EDID_V1_BLOCKMAP = 2,
1325 D3DKMDT_MDT_OTHER = 255
1327D3DKMDT_MONITOR_DESCRIPTOR_TYPE;
1329typedef struct _D3DKMDT_MONITOR_DESCRIPTOR
1331 D3DKMDT_MONITOR_DESCRIPTOR_ID
Id;
1332 D3DKMDT_MONITOR_DESCRIPTOR_TYPE
Type;
1335 D3DKMDT_MONITOR_CAPABILITIES_ORIGIN Origin;
1337D3DKMDT_MONITOR_DESCRIPTOR;
1340typedef enum _D3DKMDT_STANDARDALLOCATION_TYPE
1342 D3DKMDT_STANDARDALLOCATION_SHAREDPRIMARYSURFACE = 1,
1343 D3DKMDT_STANDARDALLOCATION_SHADOWSURFACE = 2,
1344 D3DKMDT_STANDARDALLOCATION_STAGINGSURFACE = 3,
1345 D3DKMDT_STANDARDALLOCATION_GDISURFACE = 4,
1346#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_1)
1347 D3DKMDT_STANDARDALLOCATION_VGPU = 5,
1349} D3DKMDT_STANDARDALLOCATION_TYPE;
1351#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WIN8)
1352typedef enum _D3DKMDT_GRAPHICS_PREEMPTION_GRANULARITY
1354 D3DKMDT_GRAPHICS_PREEMPTION_NONE = 0,
1355 D3DKMDT_GRAPHICS_PREEMPTION_DMA_BUFFER_BOUNDARY = 100,
1356 D3DKMDT_GRAPHICS_PREEMPTION_PRIMITIVE_BOUNDARY = 200,
1357 D3DKMDT_GRAPHICS_PREEMPTION_TRIANGLE_BOUNDARY = 300,
1358 D3DKMDT_GRAPHICS_PREEMPTION_PIXEL_BOUNDARY = 400,
1359 D3DKMDT_GRAPHICS_PREEMPTION_SHADER_BOUNDARY = 500,
1360} D3DKMDT_GRAPHICS_PREEMPTION_GRANULARITY;
1362typedef enum _D3DKMDT_COMPUTE_PREEMPTION_GRANULARITY
1364 D3DKMDT_COMPUTE_PREEMPTION_NONE = 0,
1365 D3DKMDT_COMPUTE_PREEMPTION_DMA_BUFFER_BOUNDARY = 100,
1366 D3DKMDT_COMPUTE_PREEMPTION_DISPATCH_BOUNDARY = 200,
1367 D3DKMDT_COMPUTE_PREEMPTION_THREAD_GROUP_BOUNDARY = 300,
1368 D3DKMDT_COMPUTE_PREEMPTION_THREAD_BOUNDARY = 400,
1369 D3DKMDT_COMPUTE_PREEMPTION_SHADER_BOUNDARY = 500,
1370} D3DKMDT_COMPUTE_PREEMPTION_GRANULARITY;
1372typedef struct _D3DKMDT_PREEMPTION_CAPS
1374 D3DKMDT_GRAPHICS_PREEMPTION_GRANULARITY GraphicsPreemptionGranularity;
1375 D3DKMDT_COMPUTE_PREEMPTION_GRANULARITY ComputePreemptionGranularity;
1376} D3DKMDT_PREEMPTION_CAPS;
1378typedef struct _D3DKMT_WDDM_1_2_CAPS
1380 D3DKMDT_PREEMPTION_CAPS PreemptionCaps;
1385 UINT SupportNonVGA : 1;
1386 UINT SupportSmoothRotation : 1;
1387 UINT SupportPerEngineTDR : 1;
1388 UINT SupportKernelModeCommandBuffer : 1;
1389 UINT SupportCCD : 1;
1390 UINT SupportSoftwareDeviceBitmaps : 1;
1391 UINT SupportGammaRamp : 1;
1392 UINT SupportHWCursor : 1;
1393 UINT SupportHWVSync : 1;
1394 UINT SupportSurpriseRemovalInHibernation : 1;
1399} D3DKMT_WDDM_1_2_CAPS;
1404typedef struct _D3DKMDT_SHAREDPRIMARYSURFACEDATA
1409 D3DDDI_RATIONAL RefreshRate;
1410 D3DDDI_VIDEO_PRESENT_SOURCE_ID VidPnSourceId;
1411} D3DKMDT_SHAREDPRIMARYSURFACEDATA;
1413typedef struct _D3DKMDT_SHADOWSURFACEDATA
1419} D3DKMDT_SHADOWSURFACEDATA;
1426typedef struct _D3DKMDT_STAGINGSURFACEDATA
1431} D3DKMDT_STAGINGSURFACEDATA;
1433typedef struct _D3DKMDT_GDISURFACEFLAGS
1443} D3DKMDT_GDISURFACEFLAGS;
1445typedef enum _D3DKMDT_GDISURFACETYPE
1447 D3DKMDT_GDISURFACE_INVALID = 0,
1448 D3DKMDT_GDISURFACE_TEXTURE = 1,
1449 D3DKMDT_GDISURFACE_STAGING_CPUVISIBLE = 2,
1450 D3DKMDT_GDISURFACE_STAGING = 3,
1451 D3DKMDT_GDISURFACE_LOOKUPTABLE = 4,
1452 D3DKMDT_GDISURFACE_EXISTINGSYSMEM = 5,
1453 D3DKMDT_GDISURFACE_TEXTURE_CPUVISIBLE = 6,
1454#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM1_3_M1)
1455 D3DKMDT_GDISURFACE_TEXTURE_CROSSADAPTER = 7,
1456 D3DKMDT_GDISURFACE_TEXTURE_CPUVISIBLE_CROSSADAPTER = 8,
1458} D3DKMDT_GDISURFACETYPE;
1460typedef struct _D3DKMDT_GDISURFACEDATA
1465 D3DKMDT_GDISURFACETYPE
Type;
1466 D3DKMDT_GDISURFACEFLAGS
Flags;
1468} D3DKMDT_GDISURFACEDATA;
1470#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_1)
1472typedef struct _D3DKMDT_VIRTUALGPUSURFACEDATA
1476 UINT DriverSegmentId;
1477 UINT PrivateDriverData;
1478} D3DKMDT_VIRTUALGPUSURFACEDATA;
1482typedef struct _D3DKMDT_PALETTEDATA
1488} D3DKMDT_PALETTEDATA;
1498typedef struct _DXGKARG_SETPALETTE
1500 D3DDDI_VIDEO_PRESENT_SOURCE_ID VidPnSourceId;
1503 D3DKMDT_PALETTEDATA* pLookupTable;
1504} DXGKARG_SETPALETTE;
1519typedef struct _D3DKMT_MOVE_RECT
1529#ifndef PHYSICAL_ADDRESS
1533typedef struct _DXGK_DISPLAY_INFORMATION
1538 D3DDDIFORMAT ColorFormat;
1540 D3DDDI_VIDEO_PRESENT_TARGET_ID
TargetId;
1542} DXGK_DISPLAY_INFORMATION, *PDXGK_DISPLAY_INFORMATION;
1547#define DXGKMDT_I2C_NO_FLAGS 0
1548#define DXGKMDT_I2C_DEVICE_TRANSMITS_DATA_LENGTH 1
1552#pragma pack( push, 1 )
1554#define DXGKMDT_OPM_OMAC_SIZE 16
1555#define DXGKMDT_OPM_128_BIT_RANDOM_NUMBER_SIZE 16
1556#define DXGKMDT_OPM_ENCRYPTED_PARAMETERS_SIZE 256
1557#define DXGKMDT_OPM_CONFIGURE_SETTING_DATA_SIZE 4056
1558#define DXGKMDT_OPM_GET_INFORMATION_PARAMETERS_SIZE 4056
1559#define DXGKMDT_OPM_REQUESTED_INFORMATION_SIZE 4076
1560#define DXGKMDT_OPM_HDCP_KEY_SELECTION_VECTOR_SIZE 5
1561#define DXGKMDT_OPM_PROTECTION_TYPE_SIZE 4
1563DEFINE_GUID(DXGKMDT_OPM_GET_CURRENT_HDCP_SRM_VERSION, 0x99c5ceff, 0x5f1d, 0x4879, 0x81, 0xc1, 0xc5, 0x24, 0x43, 0xc9, 0x48, 0x2b);
1564DEFINE_GUID(DXGKMDT_OPM_GET_CONNECTED_HDCP_DEVICE_INFORMATION, 0x0db59d74, 0xa992, 0x492e, 0xa0, 0xbd, 0xc2, 0x3f, 0xda, 0x56, 0x4e, 0x00);
1565DEFINE_GUID(DXGKMDT_OPM_GET_CONNECTOR_TYPE, 0x81d0bfd5, 0x6afe, 0x48c2, 0x99, 0xc0, 0x95, 0xa0, 0x8f, 0x97, 0xc5, 0xda);
1566DEFINE_GUID(DXGKMDT_OPM_GET_SUPPORTED_PROTECTION_TYPES, 0x38f2a801, 0x9a6c, 0x48bb, 0x91, 0x07, 0xb6, 0x69, 0x6e, 0x6f, 0x17, 0x97);
1567DEFINE_GUID(DXGKMDT_OPM_GET_VIRTUAL_PROTECTION_LEVEL, 0xb2075857, 0x3eda, 0x4d5d, 0x88, 0xdb, 0x74, 0x8f, 0x8c, 0x1a, 0x05, 0x49);
1568DEFINE_GUID(DXGKMDT_OPM_GET_ACTUAL_PROTECTION_LEVEL, 0x1957210a, 0x7766, 0x452a, 0xb9, 0x9a, 0xd2, 0x7a, 0xed, 0x54, 0xf0, 0x3a);
1569DEFINE_GUID(DXGKMDT_OPM_GET_ACTUAL_OUTPUT_FORMAT, 0xd7bf1ba3, 0xad13, 0x4f8e, 0xaf, 0x98, 0x0d, 0xcb, 0x3c, 0xa2, 0x04, 0xcc);
1570DEFINE_GUID(DXGKMDT_OPM_GET_ADAPTER_BUS_TYPE, 0xc6f4d673, 0x6174, 0x4184, 0x8e, 0x35, 0xf6, 0xdb, 0x52, 0x0, 0xbc, 0xba);
1571DEFINE_GUID(DXGKMDT_OPM_GET_ACP_AND_CGMSA_SIGNALING, 0x6629a591, 0x3b79, 0x4cf3, 0x92, 0x4a, 0x11, 0xe8, 0xe7, 0x81, 0x16, 0x71);
1572DEFINE_GUID(DXGKMDT_OPM_GET_OUTPUT_ID, 0x72cb6df3, 0x244f, 0x40ce, 0xb0, 0x9e, 0x20, 0x50, 0x6a, 0xf6, 0x30, 0x2f);
1573DEFINE_GUID(DXGKMDT_OPM_GET_DVI_CHARACTERISTICS, 0xa470b3bb, 0x5dd7, 0x4172, 0x83, 0x9c, 0x3d, 0x37, 0x76, 0xe0, 0xeb, 0xf5);
1574DEFINE_GUID(DXGKMDT_OPM_GET_OUTPUT_HARDWARE_PROTECTION_SUPPORT, 0x3b129589, 0x2af8, 0x4ef0, 0x96, 0xa2, 0x70, 0x4a, 0x84, 0x5a, 0x21, 0x8e);
1575DEFINE_GUID(DXGKMDT_OPM_GET_CODEC_INFO, 0x4f374491, 0x8f5f, 0x4445, 0x9d, 0xba, 0x95, 0x58, 0x8f, 0x6b, 0x58, 0xb4);
1576DEFINE_GUID(DXGKMDT_OPM_SET_PROTECTION_LEVEL, 0x9bb9327c, 0x4eb5, 0x4727, 0x9f, 0x00, 0xb4, 0x2b, 0x09, 0x19, 0xc0, 0xda);
1577DEFINE_GUID(DXGKMDT_OPM_SET_ACP_AND_CGMSA_SIGNALING, 0x09a631a5, 0xd684, 0x4c60, 0x8e, 0x4d, 0xd3, 0xbb, 0x0f, 0x0b, 0xe3, 0xee);
1578DEFINE_GUID(DXGKMDT_OPM_SET_HDCP_SRM, 0x8b5ef5d1, 0xc30d, 0x44ff, 0x84, 0xa5, 0xea, 0x71, 0xdc, 0xe7, 0x8f, 0x13);
1579DEFINE_GUID(DXGKMDT_OPM_SET_PROTECTION_LEVEL_ACCORDING_TO_CSS_DVD, 0x39ce333e, 0x4cc0, 0x44ae, 0xbf, 0xcc, 0xda, 0x50, 0xb5, 0xf8, 0x2e, 0x72);
1581typedef enum _DXGKMDT_CERTIFICATE_TYPE
1583 DXGKMDT_OPM_CERTIFICATE = 0,
1584 DXGKMDT_COPP_CERTIFICATE = 1,
1585 DXGKMDT_UAB_CERTIFICATE = 2,
1586 DXGKMDT_INDIRECT_DISPLAY_CERTIFICATE = 3,
1587 DXGKMDT_FORCE_ULONG = 0xFFFFFFFF
1588} DXGKMDT_CERTIFICATE_TYPE;
1590typedef enum _DXGKMDT_OPM_VIDEO_OUTPUT_SEMANTICS
1592 DXGKMDT_OPM_VOS_COPP_SEMANTICS = 0,
1593 DXGKMDT_OPM_VOS_OPM_SEMANTICS = 1,
1594 DXGKMDT_OPM_VOS_OPM_INDIRECT_DISPLAY = 2
1595} DXGKMDT_OPM_VIDEO_OUTPUT_SEMANTICS;
1597typedef enum _DXGKMDT_DPCP_PROTECTION_LEVEL
1599 DXGKMDT_OPM_DPCP_OFF = 0,
1600 DXGKMDT_OPM_DPCP_ON = 1,
1601 DXGKMDT_OPM_DPCP_FORCE_ULONG = 0x7fffffff
1603} DXGKMDT_OPM_DPCP_PROTECTION_LEVEL;
1605typedef enum _DXGKMDT_OPM_HDCP_FLAG
1607 DXGKMDT_OPM_HDCP_FLAG_NONE = 0x00,
1608 DXGKMDT_OPM_HDCP_FLAG_REPEATER = 0x01
1609} DXGKMDT_OPM_HDCP_FLAG;
1611typedef enum _DXGKMDT_OPM_STATUS
1613 DXGKMDT_OPM_STATUS_NORMAL = 0x00,
1614 DXGKMDT_OPM_STATUS_LINK_LOST = 0x01,
1615 DXGKMDT_OPM_STATUS_RENEGOTIATION_REQUIRED = 0x02,
1616 DXGKMDT_OPM_STATUS_TAMPERING_DETECTED = 0x04,
1617 DXGKMDT_OPM_STATUS_REVOKED_HDCP_DEVICE_ATTACHED = 0x08
1618} DXGKMDT_OPM_STATUS;
1621typedef enum _DXGKMDT_OPM_BUS_TYPE_AND_IMPLEMENTATION
1623 DXGKMDT_OPM_BUS_TYPE_OTHER = 0x00000000,
1624 DXGKMDT_OPM_BUS_TYPE_PCI = 0x00000001,
1625 DXGKMDT_OPM_BUS_TYPE_PCIX = 0x00000002,
1626 DXGKMDT_OPM_BUS_TYPE_PCIEXPRESS = 0x00000003,
1627 DXGKMDT_OPM_BUS_TYPE_AGP = 0x00000004,
1628 DXGKMDT_OPM_BUS_IMPLEMENTATION_MODIFIER_INSIDE_OF_CHIPSET = 0x00010000,
1629 DXGKMDT_OPM_BUS_IMPLEMENTATION_MODIFIER_TRACKS_ON_MOTHER_BOARD_TO_CHIP = 0x00020000,
1630 DXGKMDT_OPM_BUS_IMPLEMENTATION_MODIFIER_TRACKS_ON_MOTHER_BOARD_TO_SOCKET = 0x00030000,
1631 DXGKMDT_OPM_BUS_IMPLEMENTATION_MODIFIER_DAUGHTER_BOARD_CONNECTOR = 0x00040000,
1632 DXGKMDT_OPM_BUS_IMPLEMENTATION_MODIFIER_DAUGHTER_BOARD_CONNECTOR_INSIDE_OF_NUAE = 0x00050000,
1633 DXGKMDT_OPM_BUS_IMPLEMENTATION_MODIFIER_NON_STANDARD = 0x80000000,
1634 DXGKMDT_OPM_COPP_COMPATIBLE_BUS_TYPE_INTEGRATED = 0x80000000
1635} DXGKMDT_OPM_BUS_TYPE_AND_IMPLEMENTATION;
1637typedef enum _DXGKMDT_OPM_HDCP_PROTECTION_LEVEL
1639 DXGKMDT_OPM_HDCP_OFF = 0,
1640 DXGKMDT_OPM_HDCP_ON = 1,
1641 DXGKMDT_OPM_HDCP_FORCE_ULONG = 0x7fffffff
1642} DXGKMDT_OPM_HDCP_PROTECTION_LEVEL;
1644typedef enum _DXGKMDT_OPM_TYPE_ENFORCEMENT_HDCP_PROTECTION_LEVEL
1646 DXGKMDT_OPM_TYPE_ENFORCEMENT_HDCP_OFF = DXGKMDT_OPM_HDCP_OFF,
1647 DXGKMDT_OPM_TYPE_ENFORCEMENT_HDCP_ON_WITH_NO_TYPE_RESTRICTION = DXGKMDT_OPM_HDCP_ON,
1648 DXGKMDT_OPM_TYPE_ENFORCEMENT_HDCP_ON_WITH_TYPE1_RESTRICTION = DXGKMDT_OPM_HDCP_ON + 1,
1649 DXGKMDT_OPM_TYPE_ENFORCEMENT_HDCP_FORCE_ULONG = 0x7fffffff
1650} DXGKMDT_OPM_TYPE_ENFORCEMENT_HDCP_PROTECTION_LEVEL;
1652typedef enum _DXGKMDT_OPM_CGMSA
1654 DXGKMDT_OPM_CGMSA_OFF = 0,
1655 DXGKMDT_OPM_CGMSA_COPY_FREELY = 1,
1656 DXGKMDT_OPM_CGMSA_COPY_NO_MORE = 2,
1657 DXGKMDT_OPM_CGMSA_COPY_ONE_GENERATION = 3,
1658 DXGKMDT_OPM_CGMSA_COPY_NEVER = 4,
1659 DXGKMDT_OPM_REDISTRIBUTION_CONTROL_REQUIRED = 0x08,
1662typedef enum _DXGKMDT_OPM_ACP_PROTECTION_LEVEL
1664 DXGKMDT_OPM_ACP_OFF = 0,
1665 DXGKMDT_OPM_ACP_LEVEL_ONE = 1,
1666 DXGKMDT_OPM_ACP_LEVEL_TWO = 2,
1667 DXGKMDT_OPM_ACP_LEVEL_THREE = 3,
1668 DXGKMDT_OPM_ACP_FORCE_ULONG = 0x7fffffff
1669} DXGKMDT_OPM_ACP_PROTECTION_LEVEL;
1671typedef enum _DXGKMDT_OPM_PROTECTION_TYPE
1673 DXGKMDT_OPM_PROTECTION_TYPE_OTHER = 0x80000000,
1674 DXGKMDT_OPM_PROTECTION_TYPE_NONE = 0x00000000,
1675 DXGKMDT_OPM_PROTECTION_TYPE_COPP_COMPATIBLE_HDCP = 0x00000001,
1676 DXGKMDT_OPM_PROTECTION_TYPE_ACP = 0x00000002,
1677 DXGKMDT_OPM_PROTECTION_TYPE_CGMSA = 0x00000004,
1678 DXGKMDT_OPM_PROTECTION_TYPE_HDCP = 0x00000008,
1679 DXGKMDT_OPM_PROTECTION_TYPE_DPCP = 0x00000010,
1680 DXGKMDT_OPM_PROTECTION_TYPE_TYPE_ENFORCEMENT_HDCP = 0x00000020,
1681 DXGKMDT_OPM_PROTECTION_TYPE_MASK = 0x8000003F
1682} DXGKMDT_OPM_PROTECTION_TYPE;
1684typedef enum _DXGKMDT_OPM_PROTECTION_STANDARD
1686 DXGKMDT_OPM_PROTECTION_STANDARD_OTHER = 0x80000000,
1687 DXGKMDT_OPM_PROTECTION_STANDARD_NONE = 0x00000000,
1688 DXGKMDT_OPM_PROTECTION_STANDARD_IEC61880_525I = 0x00000001,
1689 DXGKMDT_OPM_PROTECTION_STANDARD_IEC61880_2_525I = 0x00000002,
1690 DXGKMDT_OPM_PROTECTION_STANDARD_IEC62375_625P = 0x00000004,
1691 DXGKMDT_OPM_PROTECTION_STANDARD_EIA608B_525 = 0x00000008,
1692 DXGKMDT_OPM_PROTECTION_STANDARD_EN300294_625I = 0x00000010,
1693 DXGKMDT_OPM_PROTECTION_STANDARD_CEA805A_TYPEA_525P = 0x00000020,
1694 DXGKMDT_OPM_PROTECTION_STANDARD_CEA805A_TYPEA_750P = 0x00000040,
1695 DXGKMDT_OPM_PROTECTION_STANDARD_CEA805A_TYPEA_1125I = 0x00000080,
1696 DXGKMDT_OPM_PROTECTION_STANDARD_CEA805A_TYPEB_525P = 0x00000100,
1697 DXGKMDT_OPM_PROTECTION_STANDARD_CEA805A_TYPEB_750P = 0x00000200,
1698 DXGKMDT_OPM_PROTECTION_STANDARD_CEA805A_TYPEB_1125I = 0x00000400,
1699 DXGKMDT_OPM_PROTECTION_STANDARD_ARIBTRB15_525I = 0x00000800,
1700 DXGKMDT_OPM_PROTECTION_STANDARD_ARIBTRB15_525P = 0x00001000,
1701 DXGKMDT_OPM_PROTECTION_STANDARD_ARIBTRB15_750P = 0x00002000,
1702 DXGKMDT_OPM_PROTECTION_STANDARD_ARIBTRB15_1125I = 0x00004000,
1703} DXGKMDT_OPM_PROTECTION_STANDARD;
1705typedef enum _DXGKMDT_OPM_IMAGE_ASPECT_RATIO_EN300294
1707 DXGKMDT_OPM_ASPECT_RATIO_EN300294_FULL_FORMAT_4_BY_3 = 0,
1708 DXGKMDT_OPM_ASPECT_RATIO_EN300294_BOX_14_BY_9_CENTER = 1,
1709 DXGKMDT_OPM_ASPECT_RATIO_EN300294_BOX_14_BY_9_TOP = 2,
1710 DXGKMDT_OPM_ASPECT_RATIO_EN300294_BOX_16_BY_9_CENTER = 3,
1711 DXGKMDT_OPM_ASPECT_RATIO_EN300294_BOX_16_BY_9_TOP = 4,
1712 DXGKMDT_OPM_ASPECT_RATIO_EN300294_BOX_GT_16_BY_9_CENTER = 5,
1713 DXGKMDT_OPM_ASPECT_RATIO_EN300294_FULL_FORMAT_4_BY_3_PROTECTED_CENTER = 6,
1714 DXGKMDT_OPM_ASPECT_RATIO_EN300294_FULL_FORMAT_16_BY_9_ANAMORPHIC = 7,
1715 DXGKMDT_OPM_ASPECT_RATIO_FORCE_ULONG = 0x7FFFFFFF
1716} DXGKMDT_OPM_IMAGE_ASPECT_RATIO_EN300294;
1718typedef enum _DXGKMDT_OPM_INTERLEAVE_FORMAT
1720 DXGKMDT_OPM_INTERLEAVE_FORMAT_OTHER = 0,
1721 DXGKMDT_OPM_INTERLEAVE_FORMAT_PROGRESSIVE = 2,
1722 DXGKMDT_OPM_INTERLEAVE_FORMAT_INTERLEAVED_EVEN_FIRST = 3,
1723 DXGKMDT_OPM_INTERLEAVE_FORMAT_INTERLEAVED_ODD_FIRST = 4,
1724 DXGKMDT_OPM_INTERLEAVE_FORMAT_FORCE_ULONG = 0xFFFFFFFF
1726} DXGKMDT_OPM_INTERLEAVE_FORMAT;
1728typedef enum _DXGKDT_OPM_DVI_CHARACTERISTICS
1730 DXGKMDT_OPM_DVI_CHARACTERISTIC_1_0 = 1,
1731 DXGKMDT_OPM_DVI_CHARACTERISTIC_1_1_OR_ABOVE = 2,
1732 DXGKMDT_OPM_DVI_CHARACTERISTICS_FORCE_ULONG = 0xFFFFFFFF
1733} DXGKDT_OPM_DVI_CHARACTERISTICS;
1735typedef enum _DXGKMDT_OPM_OUTPUT_HARDWARE_PROTECTION
1737 DXGKMDT_OPM_OUTPUT_HARDWARE_PROTECTION_NOT_SUPPORTED = 0x0,
1738 DXGKMDT_OPM_OUTPUT_HARDWARE_PROTECTION_SUPPORTED = 0x1
1739} DXGKMDT_OPM_OUTPUT_HARDWARE_PROTECTION;
1741typedef struct _DXGKMDT_OPM_RANDOM_NUMBER
1743 BYTE abRandomNumber[DXGKMDT_OPM_128_BIT_RANDOM_NUMBER_SIZE];
1744} DXGKMDT_OPM_RANDOM_NUMBER, *PDXGKMDT_OPM_RANDOM_NUMBER;
1746typedef struct _DXGKMDT_OPM_OMAC
1748 BYTE abOMAC[DXGKMDT_OPM_OMAC_SIZE];
1749} DXGKMDT_OPM_OMAC, *PDXGKMDT_OPM_OMAC;
1751typedef struct _DXGKMDT_OPM_ENCRYPTED_PARAMETERS
1753 BYTE abEncryptedParameters[DXGKMDT_OPM_ENCRYPTED_PARAMETERS_SIZE];
1754} DXGKMDT_OPM_ENCRYPTED_PARAMETERS, *PDXGKMDT_OPM_ENCRYPTED_PARAMETERS;
1756typedef struct _DXGKMDT_OPM_GET_INFO_PARAMETERS
1758 DXGKMDT_OPM_OMAC omac;
1759 DXGKMDT_OPM_RANDOM_NUMBER rnRandomNumber;
1760 GUID guidInformation;
1761 ULONG ulSequenceNumber;
1762 ULONG cbParametersSize;
1763 BYTE abParameters[DXGKMDT_OPM_GET_INFORMATION_PARAMETERS_SIZE];
1764} DXGKMDT_OPM_GET_INFO_PARAMETERS, *PDXGKMDT_OPM_GET_INFO_PARAMETERS;
1766typedef struct _DXGKMDT_OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS
1768 DXGKMDT_OPM_RANDOM_NUMBER rnRandomNumber;
1769 GUID guidInformation;
1770 ULONG ulSequenceNumber;
1771 ULONG cbParametersSize;
1772 BYTE abParameters[DXGKMDT_OPM_GET_INFORMATION_PARAMETERS_SIZE];
1773} DXGKMDT_OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS, *PDXGKMDT_OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS;
1775typedef struct _DXGKMDT_OPM_HDCP_KEY_SELECTION_VECTOR
1777 BYTE abKeySelectionVector[DXGKMDT_OPM_HDCP_KEY_SELECTION_VECTOR_SIZE];
1778} DXGKMDT_OPM_HDCP_KEY_SELECTION_VECTOR;
1780typedef struct _DXGKMDT_OPM_CONNECTED_HDCP_DEVICE_INFORMATION
1782 DXGKMDT_OPM_RANDOM_NUMBER rnRandomNumber;
1783 ULONG ulStatusFlags;
1785 DXGKMDT_OPM_HDCP_KEY_SELECTION_VECTOR ksvB;
1789} DXGKMDT_OPM_CONNECTED_HDCP_DEVICE_INFORMATION;
1791typedef struct _DXGKMDT_OPM_REQUESTED_INFORMATION
1793 DXGKMDT_OPM_OMAC omac;
1794 ULONG cbRequestedInformationSize;
1795 BYTE abRequestedInformation[DXGKMDT_OPM_REQUESTED_INFORMATION_SIZE];
1796} DXGKMDT_OPM_REQUESTED_INFORMATION, *PDXGKMDT_OPM_REQUESTED_INFORMATION;
1798typedef struct _DXGKMDT_OPM_STANDARD_INFORMATION
1800 DXGKMDT_OPM_RANDOM_NUMBER rnRandomNumber;
1801 ULONG ulStatusFlags;
1802 ULONG ulInformation;
1805} DXGKMDT_OPM_STANDARD_INFORMATION;
1807typedef struct _DXGKMDT_OPM_ACTUAL_OUTPUT_FORMAT
1809 DXGKMDT_OPM_RANDOM_NUMBER rnRandomNumber;
1810 ULONG ulStatusFlags;
1811 ULONG ulDisplayWidth;
1812 ULONG ulDisplayHeight;
1813 DXGKMDT_OPM_INTERLEAVE_FORMAT ifInterleaveFormat;
1815 ULONG ulFrequencyNumerator;
1816 ULONG ulFrequencyDenominator;
1817} DXGKMDT_OPM_ACTUAL_OUTPUT_FORMAT;
1819typedef struct _DXGKMDT_OPM_ACP_AND_CGMSA_SIGNALING
1821 DXGKMDT_OPM_RANDOM_NUMBER rnRandomNumber;
1822 ULONG ulStatusFlags;
1823 ULONG ulAvailableTVProtectionStandards;
1824 ULONG ulActiveTVProtectionStandard;
1826 ULONG ulAspectRatioValidMask1;
1827 ULONG ulAspectRatioData1;
1828 ULONG ulAspectRatioValidMask2;
1829 ULONG ulAspectRatioData2;
1830 ULONG ulAspectRatioValidMask3;
1831 ULONG ulAspectRatioData3;
1832 ULONG ulReserved2[4];
1833 ULONG ulReserved3[4];
1834} DXGKMDT_OPM_ACP_AND_CGMSA_SIGNALING;
1836typedef struct _DXGKMDT_OPM_OUTPUT_ID
1838 DXGKMDT_OPM_RANDOM_NUMBER rnRandomNumber;
1839 ULONG ulStatusFlags;
1841} DXGKMDT_OPM_OUTPUT_ID;
1843typedef struct _DXGKMDT_OPM_CONFIGURE_PARAMETERS
1845 DXGKMDT_OPM_OMAC omac;
1847 ULONG ulSequenceNumber;
1848 ULONG cbParametersSize;
1849 BYTE abParameters[DXGKMDT_OPM_CONFIGURE_SETTING_DATA_SIZE];
1850} DXGKMDT_OPM_CONFIGURE_PARAMETERS, *PDXGKMDT_OPM_CONFIGURE_PARAMETERS;
1852typedef struct _DXGKMDT_OPM_SET_PROTECTION_LEVEL_PARAMETERS
1854 ULONG ulProtectionType;
1855 ULONG ulProtectionLevel;
1858} DXGKMDT_OPM_SET_PROTECTION_LEVEL_PARAMETERS;
1860typedef struct _DXGKMDT_OPM_SET_ACP_AND_CGMSA_SIGNALING_PARAMETERS
1862 ULONG ulNewTVProtectionStandard;
1863 ULONG ulAspectRatioChangeMask1;
1864 ULONG ulAspectRatioData1;
1865 ULONG ulAspectRatioChangeMask2;
1866 ULONG ulAspectRatioData2;
1867 ULONG ulAspectRatioChangeMask3;
1868 ULONG ulAspectRatioData3;
1870 ULONG ulReserved2[4];
1872} DXGKMDT_OPM_SET_ACP_AND_CGMSA_SIGNALING_PARAMETERS;
1874typedef struct _DXGKMDT_OPM_SET_HDCP_SRM_PARAMETERS
1877} DXGKMDT_OPM_SET_HDCP_SRM_PARAMETERS;
1879typedef struct _DXGKMDT_OPM_CREATE_VIDEO_OUTPUT_FOR_TARGET_PARAMETERS
1882 D3DDDI_VIDEO_PRESENT_TARGET_ID
TargetId;
1883 DXGKMDT_OPM_VIDEO_OUTPUT_SEMANTICS Vos;
1884} DXGKMDT_OPM_CREATE_VIDEO_OUTPUT_FOR_TARGET_PARAMETERS;
1886typedef struct _DXGK_BRIGHTNESS_CAPS
1892 UINT SmoothBrightness : 1;
1893 UINT AdaptiveBrightness : 1;
1894 UINT NitsBrightness : 1;
1900} DXGK_BRIGHTNESS_CAPS;
1902typedef struct _DXGK_BRIGHTNESS_STATE
1908 UINT SmoothBrightness : 1;
1914} DXGK_BRIGHTNESS_STATE;
1918 DxgkBacklightOptimizationDisable = 0,
1919 DxgkBacklightOptimizationDesktop = 1,
1920 DxgkBacklightOptimizationDynamic = 2,
1921 DxgkBacklightOptimizationDimmed = 3,
1922#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_2)
1923 DxgkBacklightOptimizationEDR = 4,
1925} DXGK_BACKLIGHT_OPTIMIZATION_LEVEL;
1927typedef struct _DXGK_BACKLIGHT_INFO
1931 OUT D3DDDI_GAMMA_RAMP_RGB256x3x16 GammaRamp;
1932} DXGK_BACKLIGHT_INFO;
1934typedef struct _DXGK_BRIGHTNESS_SENSOR_DATA_CHROMATICITY
1936 float ChromaticityX;
1937 float ChromaticityY;
1938} DXGK_BRIGHTNESS_SENSOR_DATA_CHROMATICITY;
1940typedef struct _DXGK_BRIGHTNESS_SENSOR_DATA
1947 UINT AlsReadingValid : 1;
1948 UINT ChromaticityValid : 1;
1949 UINT ColorTemperatureValid : 1;
1952 UINT ValidSensorValues;
1955 DXGK_BRIGHTNESS_SENSOR_DATA_CHROMATICITY Chromaticity;
1956 float ColorTemperature;
1957} DXGK_BRIGHTNESS_SENSOR_DATA;
1960typedef struct _DXGK_BRIGHTNESS_SET_IN
1962 UINT32 BrightnessMillinits;
1964 DXGK_BRIGHTNESS_SENSOR_DATA SensorReadings;
1965} DXGK_BRIGHTNESS_SET_IN, *PDXGK_BRIGHTNESS_SET_IN;
1967typedef struct _DXGK_BRIGHTNESS_GET_OUT
1969 UINT32 CurrentBrightnessMillinits;
1970 UINT32 TargetBrightnessMillinits;
1971} DXGK_BRIGHTNESS_GET_OUT, *PDXGK_BRIGHTNESS_GET_OUT;
1973typedef struct _DXGK_BRIGHTNESS_NIT_RANGE
1975 UINT32 MinimumLevelMillinit;
1976 UINT32 MaximumLevelMillinit;
1978} DXGK_BRIGHTNESS_NIT_RANGE;
1980#define DXGK_BRIGHTNESS_MAXIMUM_NIT_RANGE_COUNT 16
1982typedef struct _DXGK_BRIGHTNESS_GET_NIT_RANGES_OUT
1986 UINT32 PreferredMaximumBrightness;
1987 DXGK_BRIGHTNESS_NIT_RANGE SupportedRanges[DXGK_BRIGHTNESS_MAXIMUM_NIT_RANGE_COUNT];
1988} DXGK_BRIGHTNESS_GET_NIT_RANGES_OUT, *PDXGK_BRIGHTNESS_GET_NIT_RANGES_OUT;
1990#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM1_3)
1992typedef struct _D3DKMT_WDDM_1_3_CAPS
1998 UINT SupportMiracast : 1;
1999 UINT IsHybridIntegratedGPU : 1;
2000 UINT IsHybridDiscreteGPU : 1;
2001 UINT SupportPowerManagementPStates : 1;
2002 UINT SupportVirtualModes : 1;
2003 UINT SupportCrossAdapterResource : 1;
2008} D3DKMT_WDDM_1_3_CAPS;
2010#define DXGK_MAX_METADATA_NAME_LENGTH 32
2013 DXGK_ENGINE_TYPE_OTHER,
2014 DXGK_ENGINE_TYPE_3D,
2015 DXGK_ENGINE_TYPE_VIDEO_DECODE,
2016 DXGK_ENGINE_TYPE_VIDEO_ENCODE,
2017 DXGK_ENGINE_TYPE_VIDEO_PROCESSING,
2018 DXGK_ENGINE_TYPE_SCENE_ASSEMBLY,
2019 DXGK_ENGINE_TYPE_COPY,
2020 DXGK_ENGINE_TYPE_OVERLAY,
2021 DXGK_ENGINE_TYPE_CRYPTO,
2022 DXGK_ENGINE_TYPE_MAX
2025#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_2)
2027typedef struct _DXGK_NODEMETADATA_FLAGS
2033 UINT ContextSchedulingSupported : 1;
2035#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_5)
2037 UINT RingBufferFenceRelease : 1;
2038 UINT SupportTrackedWorkload : 1;
2041 UINT MaxInFlightHwQueueBuffers : 16;
2052} DXGK_NODEMETADATA_FLAGS;
2056typedef struct _DXGK_NODEMETADATA
2058 DXGK_ENGINE_TYPE EngineType;
2059 WCHAR FriendlyName[DXGK_MAX_METADATA_NAME_LENGTH];
2061#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_2)
2062 DXGK_NODEMETADATA_FLAGS
Flags;
2067#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_0)
2073typedef DXGK_NODEMETADATA DXGKARG_GETNODEMETADATA;
2075#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_4)
2077typedef struct _DXGK_GPUCLOCKDATA_FLAGS
2083 UINT ContextManagementProcessor : 1;
2088} DXGK_GPUCLOCKDATA_FLAGS;
2090typedef struct _DXGK_NODE_PERFDATA
2098#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_5)
2101} DXGK_NODE_PERFDATA;
2103typedef struct _DXGK_ADAPTER_PERFDATA
2113 UCHAR PowerStateOverride;
2114} DXGK_ADAPTER_PERFDATA;
2116typedef struct _DXGK_ADAPTER_PERFDATACAPS
2121 ULONG TemperatureMax;
2122 ULONG TemperatureWarning;
2123} DXGK_ADAPTER_PERFDATACAPS;
2125#define DXGK_MAX_GPUVERSION_NAME_LENGTH 32
2126typedef struct _DXGK_GPUVERSION
2129 WCHAR GpuArchitecture[DXGK_MAX_GPUVERSION_NAME_LENGTH];
2134typedef struct _DXGK_GPUCLOCKDATA
2140#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_4)
2141 DXGK_GPUCLOCKDATA_FLAGS
Flags;
2145typedef DXGK_GPUCLOCKDATA DXGKARG_CALIBRATEGPUCLOCK;
2149#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_0)
2151typedef struct _D3DKMT_WDDM_2_0_CAPS
2157 UINT Support64BitAtomics : 1;
2158 UINT GpuMmuSupported : 1;
2159 UINT IoMmuSupported : 1;
2161#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_4)
2162 UINT FlipOverwriteSupported : 1;
2163 UINT SupportContextlessPresent : 1;
2164#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_5)
2165 UINT SupportSurpriseRemoval : 1;
2176} D3DKMT_WDDM_2_0_CAPS;
2178#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_7)
2180typedef struct _D3DKMT_WDDM_2_7_CAPS
2186 UINT HwSchSupported : 1;
2187 UINT HwSchEnabled : 1;
2188 UINT HwSchEnabledByDefault : 1;
2189 UINT IndependentVidPnVSyncControl : 1;
2194} D3DKMT_WDDM_2_7_CAPS;
2198#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_9)
2205#define DXGK_FEATURE_SUPPORT_ALWAYS_OFF ((UINT)0)
2208#define DXGK_FEATURE_SUPPORT_EXPERIMENTAL ((UINT)1)
2211#define DXGK_FEATURE_SUPPORT_STABLE ((UINT)2)
2215#define DXGK_FEATURE_SUPPORT_ALWAYS_ON ((UINT)3)
2217typedef struct _D3DKMT_WDDM_2_9_CAPS
2223 _Field_range_(DXGK_FEATURE_SUPPORT_ALWAYS_OFF, DXGK_FEATURE_SUPPORT_ALWAYS_ON)
2224 UINT HwSchSupportState : 2;
2225 UINT HwSchEnabled : 1;
2226 UINT SelfRefreshMemorySupported : 1;
2231} D3DKMT_WDDM_2_9_CAPS;
2235#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM3_0)
2237typedef struct _D3DKMT_WDDM_3_0_CAPS
2243 _Field_range_(DXGK_FEATURE_SUPPORT_ALWAYS_OFF, DXGK_FEATURE_SUPPORT_ALWAYS_ON)
2244 UINT HwFlipQueueSupportState : 2;
2245 UINT HwFlipQueueEnabled : 1;
2246 UINT DisplayableSupported : 1;
2251} D3DKMT_WDDM_3_0_CAPS;
2256typedef struct _D3DKMT_TRACKEDWORKLOAD_SUPPORT
2259 _In_ DXGK_ENGINE_TYPE EngineType;
2261} D3DKMT_TRACKEDWORKLOAD_SUPPORT;
2263typedef struct _D3DKMT_NODEMETADATA
2265 _In_ UINT NodeOrdinalAndAdapterIndex;
2266 _Out_ DXGK_NODEMETADATA NodeData;
2267} D3DKMT_NODEMETADATA;
2269typedef struct _D3DKMT_QUERYCLOCKCALIBRATION
2271 D3DKMT_HANDLE hAdapter;
2273 UINT32 PhysicalAdapterIndex;
2274 DXGK_GPUCLOCKDATA ClockData;
2275} D3DKMT_QUERYCLOCKCALIBRATION;
2277typedef enum _DXGK_RENDER_PIPELINE_STAGE
2279 DXGK_RENDER_PIPELINE_STAGE_UNKNOWN = 0,
2280 DXGK_RENDER_PIPELINE_STAGE_INPUT_ASSEMBLER = 1,
2281 DXGK_RENDER_PIPELINE_STAGE_VERTEX_SHADER = 2,
2282 DXGK_RENDER_PIPELINE_STAGE_GEOMETRY_SHADER = 3,
2283 DXGK_RENDER_PIPELINE_STAGE_STREAM_OUTPUT = 4,
2284 DXGK_RENDER_PIPELINE_STAGE_RASTERIZER = 5,
2285 DXGK_RENDER_PIPELINE_STAGE_PIXEL_SHADER = 6,
2286 DXGK_RENDER_PIPELINE_STAGE_OUTPUT_MERGER = 7,
2287} DXGK_RENDER_PIPELINE_STAGE;
2289typedef enum _DXGK_PAGE_FAULT_FLAGS
2291 DXGK_PAGE_FAULT_WRITE = 0x1,
2292 DXGK_PAGE_FAULT_FENCE_INVALID = 0x2,
2294 DXGK_PAGE_FAULT_ADAPTER_RESET_REQUIRED = 0x4,
2295 DXGK_PAGE_FAULT_ENGINE_RESET_REQUIRED = 0x8,
2296 DXGK_PAGE_FAULT_FATAL_HARDWARE_ERROR = 0x10,
2298 DXGK_PAGE_FAULT_IOMMU = 0x20,
2301#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_2)
2303 DXGK_PAGE_FAULT_HW_CONTEXT_VALID = 0x40,
2304 DXGK_PAGE_FAULT_PROCESS_HANDLE_VALID = 0x80,
2309} DXGK_PAGE_FAULT_FLAGS;
2311typedef enum _DXGK_GENERAL_ERROR_CODE
2313 DXGK_GENERAL_ERROR_PAGE_FAULT = 0,
2314 DXGK_GENERAL_ERROR_INVALID_INSTRUCTION = 1,
2315} DXGK_GENERAL_ERROR_CODE;
2317typedef struct _DXGK_FAULT_ERROR_CODE
2323 UINT IsDeviceSpecificCode : 1;
2325 DXGK_GENERAL_ERROR_CODE GeneralErrorCode : 31;
2329 UINT IsDeviceSpecificCodeReservedBit : 1;
2332 UINT DeviceSpecificCode : 31;
2335} DXGK_FAULT_ERROR_CODE;
2337typedef struct _D3DKMT_DRIVERCAPS_EXT
2343 UINT VirtualModeSupport : 1;
2344 UINT Usb4MonitorSupport : 1;
2349} D3DKMT_DRIVERCAPS_EXT;
2351#define DXGK_PRIMITIVE_API_SEQUENCE_NUMBER_UNKNOWN ULONGLONG_MAX
2352#define DXGK_BIND_TABLE_ENTRY_UNKNOWN UINT_MAX
2357#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_1)
2359typedef union _DXGK_MONITORLINKINFO_USAGEHINTS
2367} DXGK_MONITORLINKINFO_USAGEHINTS, *PDXGK_MONITORLINKINFO_USAGEHINTS;
2369typedef union _DXGK_MONITORLINKINFO_CAPABILITIES
2374 UINT WideColorSpace : 1;
2375 UINT HighColorSpace : 1;
2377#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_2)
2378 UINT DynamicColorSpace : 1;
2379 UINT DynamicBitsPerColorChannel : 1;
2380 UINT DynamicColorEncodingFormat : 1;
2381 UINT DedicatedTimingGeneration : 1;
2384#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_4)
2385 UINT TargetIndependentPrimary : 1;
2386 UINT SyncLockIdentical : 1;
2390#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_5)
2391 UINT DolbyVisionLowLatency : 1;
2394#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_6)
2395 UINT VariableRefresh : 1;
2398#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_6)
2400#elif (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_5)
2402#elif (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_4)
2404#elif (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_2)
2411} DXGK_MONITORLINKINFO_CAPABILITIES, *PDXGK_MONITORLINKINFO_CAPABILITIES;
2416#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_2)
2418#if defined(__cplusplus) && !defined(SORTPP_PASS)
2420typedef enum _DXGK_DISPLAY_USAGE :
BYTE
2422 DXGK_DU_INVALID = 0,
2423 DXGK_DU_GENERIC = 1,
2426 DXGK_DU_MEDICAL_IMAGING = 4,
2427 DXGK_DU_ACCESSORY = 5,
2429} DXGK_DISPLAY_USAGE, *PDXGK_DISPLAY_USAGE;
2431typedef enum _DXGK_DISPLAY_TECHNOLOGY :
BYTE
2433 DXGK_DT_INVALID = 0,
2437 DXGK_DT_PROJECTOR = 4,
2439} DXGK_DISPLAY_TECHNOLOGY, *PDXGK_DISPLAY_TECHNOLOGY;
2441typedef enum _DXGK_DISPLAY_DESCRIPTOR_TYPE:
BYTE
2443 DXGK_DDT_INVALID = 0,
2445#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_5)
2448} DXGK_DISPLAY_DESCRIPTOR_TYPE, *PDXGK_DISPLAY_DESCRIPTOR_TYPE;
2451typedef BYTE DXGK_DISPLAY_USAGE;
2452typedef BYTE DXGK_DISPLAY_TECHNOLOGY;
2453typedef BYTE DXGK_DISPLAY_DESCRIPTOR_TYPE;
2458#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_5)
2463typedef struct _D3DKMT_DISPLAY_CAPS
2469 UINT64 PreferPhysicallyContiguous : 1;
2474} D3DKMT_DISPLAY_CAPS;
unsigned long long UINT64
static const CHAR BiosVersion[]
_In_ ULONG _In_ BOOLEAN _In_ ULONG _In_ UCHAR _In_ UCHAR TargetId
enum POWER_ACTION * PPOWER_ACTION
@ PowerActionShutdownReset
enum _DEVICE_POWER_STATE * PDEVICE_POWER_STATE
enum _DEVICE_POWER_STATE DEVICE_POWER_STATE
static GLfloat Identity[16]
union Alignment_ Alignment
#define DECLARE_HANDLE(name)
static WORD Intensity(RGBQUAD clr)
_In_ HANDLE _In_ DWORD _In_ DWORD _Inout_opt_ LPOVERLAPPED _In_opt_ LPTRANSMIT_FILE_BUFFERS _In_ DWORD dwReserved
_In_ NDIS_STATUS _In_ ULONG _In_ USHORT _In_opt_ PVOID _In_ ULONG DataSize
#define _Field_range_(l, h)
_Out_opt_ int _Out_opt_ int * cy
#define DEFINE_GUID(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8)
static LARGE_INTEGER Frequency
TW_UINT32 TW_UINT16 TW_UINT16 TW_MEMREF pData
_In_ HFONT _Out_ PUINT _Out_ PUINT Width
_In_ HFONT _Out_ PUINT Height
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_PROPERTY_DATA _In_ DEVPROPTYPE _In_ ULONG Size
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING _Out_opt_ PUSHORT _Inout_opt_ PUNICODE_STRING Value
_In_ SURFOBJ _In_ CLIPOBJ _In_opt_ XLATEOBJ _In_ RECTL _In_ RECTL _In_ ULONG _In_ ULONG ulReserved
_Reserved_ PVOID Reserved
_Must_inspect_result_ _In_ ULONG Flags