16#pragma region Desktop Family
17#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
19#if !defined(_D3DKMDT_H) && \
20 !defined(_D3DKMTHK_H_) && \
21 !defined(_D3DUMDDI_H_) && \
22 !defined(__DXGKRNLETW_H__)
23 #error This header should not be included directly!
27#pragma warning(disable:4201)
28#pragma warning(disable:4214)
35#define DXGKDDI_INTERFACE_VERSION_VISTA 0x1052
36#define DXGKDDI_INTERFACE_VERSION_VISTA_SP1 0x1053
37#define DXGKDDI_INTERFACE_VERSION_WIN7 0x2005
38#define DXGKDDI_INTERFACE_VERSION_WIN8 0x300E
39#define DXGKDDI_INTERFACE_VERSION_WDDM1_3 0x4002
40#define DXGKDDI_INTERFACE_VERSION_WDDM1_3_PATH_INDEPENDENT_ROTATION 0x4003
41#define DXGKDDI_INTERFACE_VERSION_WDDM2_0 0x5023
42#define DXGKDDI_INTERFACE_VERSION_WDDM2_1 0x6003
43#define DXGKDDI_INTERFACE_VERSION_WDDM2_1_5 0x6010
44#define DXGKDDI_INTERFACE_VERSION_WDDM2_1_6 0x6011
45#define DXGKDDI_INTERFACE_VERSION_WDDM2_2 0x700A
46#define DXGKDDI_INTERFACE_VERSION_WDDM2_3 0x8001
47#define DXGKDDI_INTERFACE_VERSION_WDDM2_4 0x9006
48#define DXGKDDI_INTERFACE_VERSION_WDDM2_5 0xA00B
49#define DXGKDDI_INTERFACE_VERSION_WDDM2_6 0xB004
50#define DXGKDDI_INTERFACE_VERSION_WDDM2_7 0xC004
51#define DXGKDDI_INTERFACE_VERSION_WDDM2_8 0xD001
52#define DXGKDDI_INTERFACE_VERSION_WDDM2_9 0xE003
53#define DXGKDDI_INTERFACE_VERSION_WDDM3_0 0xF003
56#define IS_OFFICIAL_DDI_INTERFACE_VERSION(version) \
57 (((version) == DXGKDDI_INTERFACE_VERSION_VISTA) || \
58 ((version) == DXGKDDI_INTERFACE_VERSION_VISTA_SP1) || \
59 ((version) == DXGKDDI_INTERFACE_VERSION_WIN7) || \
60 ((version) == DXGKDDI_INTERFACE_VERSION_WIN8) || \
61 ((version) == DXGKDDI_INTERFACE_VERSION_WDDM1_3) || \
62 ((version) == DXGKDDI_INTERFACE_VERSION_WDDM1_3_PATH_INDEPENDENT_ROTATION) || \
63 ((version) == DXGKDDI_INTERFACE_VERSION_WDDM2_0) || \
64 ((version) == DXGKDDI_INTERFACE_VERSION_WDDM2_1) || \
65 ((version) == DXGKDDI_INTERFACE_VERSION_WDDM2_1_5) || \
66 ((version) == DXGKDDI_INTERFACE_VERSION_WDDM2_1_6) || \
67 ((version) == DXGKDDI_INTERFACE_VERSION_WDDM2_2) || \
68 ((version) == DXGKDDI_INTERFACE_VERSION_WDDM2_3) || \
69 ((version) == DXGKDDI_INTERFACE_VERSION_WDDM2_4) || \
70 ((version) == DXGKDDI_INTERFACE_VERSION_WDDM2_5) || \
71 ((version) == DXGKDDI_INTERFACE_VERSION_WDDM2_6) || \
72 ((version) == DXGKDDI_INTERFACE_VERSION_WDDM2_7) || \
73 ((version) == DXGKDDI_INTERFACE_VERSION_WDDM2_8) || \
74 ((version) == DXGKDDI_INTERFACE_VERSION_WDDM2_9) || \
75 ((version) == DXGKDDI_INTERFACE_VERSION_WDDM3_0) \
78#if !defined(DXGKDDI_INTERFACE_VERSION)
79#define DXGKDDI_INTERFACE_VERSION DXGKDDI_INTERFACE_VERSION_WDDM3_0
82#define D3D_UMD_INTERFACE_VERSION_VISTA 0x000C
83#define D3D_UMD_INTERFACE_VERSION_WIN7 0x2003
84#define D3D_UMD_INTERFACE_VERSION_WIN8_M3 0x3001
85#define D3D_UMD_INTERFACE_VERSION_WIN8_CP 0x3002
86#define D3D_UMD_INTERFACE_VERSION_WIN8_RC 0x3003
87#define D3D_UMD_INTERFACE_VERSION_WIN8 0x3004
88#define D3D_UMD_INTERFACE_VERSION_WDDM1_3 0x4002
90#define D3D_UMD_INTERFACE_VERSION_WDDM2_0_M1 0x5000
91#define D3D_UMD_INTERFACE_VERSION_WDDM2_0_M1_3 0x5001
92#define D3D_UMD_INTERFACE_VERSION_WDDM2_0_M2_2 0x5002
93#define D3D_UMD_INTERFACE_VERSION_WDDM2_0 0x5002
95#define D3D_UMD_INTERFACE_VERSION_WDDM2_1_1 0x6000
96#define D3D_UMD_INTERFACE_VERSION_WDDM2_1_2 0x6001
97#define D3D_UMD_INTERFACE_VERSION_WDDM2_1_3 0x6002
98#define D3D_UMD_INTERFACE_VERSION_WDDM2_1_4 0x6003
99#define D3D_UMD_INTERFACE_VERSION_WDDM2_1 D3D_UMD_INTERFACE_VERSION_WDDM2_1_4
101#define D3D_UMD_INTERFACE_VERSION_WDDM2_2_1 0x7000
102#define D3D_UMD_INTERFACE_VERSION_WDDM2_2_2 0x7001
103#define D3D_UMD_INTERFACE_VERSION_WDDM2_2 D3D_UMD_INTERFACE_VERSION_WDDM2_2_2
105#define D3D_UMD_INTERFACE_VERSION_WDDM2_3_1 0x8000
106#define D3D_UMD_INTERFACE_VERSION_WDDM2_3_2 0x8001
107#define D3D_UMD_INTERFACE_VERSION_WDDM2_3 D3D_UMD_INTERFACE_VERSION_WDDM2_3_2
109#define D3D_UMD_INTERFACE_VERSION_WDDM2_4_1 0x9000
110#define D3D_UMD_INTERFACE_VERSION_WDDM2_4_2 0x9001
111#define D3D_UMD_INTERFACE_VERSION_WDDM2_4 D3D_UMD_INTERFACE_VERSION_WDDM2_4_2
113#define D3D_UMD_INTERFACE_VERSION_WDDM2_5_1 0xA000
114#define D3D_UMD_INTERFACE_VERSION_WDDM2_5_2 0xA001
115#define D3D_UMD_INTERFACE_VERSION_WDDM2_5_3 0xA002
116#define D3D_UMD_INTERFACE_VERSION_WDDM2_5 D3D_UMD_INTERFACE_VERSION_WDDM2_5_3
118#define D3D_UMD_INTERFACE_VERSION_WDDM2_6_1 0xB000
119#define D3D_UMD_INTERFACE_VERSION_WDDM2_6_2 0xB001
120#define D3D_UMD_INTERFACE_VERSION_WDDM2_6_3 0xB002
121#define D3D_UMD_INTERFACE_VERSION_WDDM2_6_4 0xB003
122#define D3D_UMD_INTERFACE_VERSION_WDDM2_6 D3D_UMD_INTERFACE_VERSION_WDDM2_6_4
124#define D3D_UMD_INTERFACE_VERSION_WDDM2_7_1 0xC000
125#define D3D_UMD_INTERFACE_VERSION_WDDM2_7_2 0xC001
126#define D3D_UMD_INTERFACE_VERSION_WDDM2_7 D3D_UMD_INTERFACE_VERSION_WDDM2_7_2
128#define D3D_UMD_INTERFACE_VERSION_WDDM2_8_1 0xD000
129#define D3D_UMD_INTERFACE_VERSION_WDDM2_8 D3D_UMD_INTERFACE_VERSION_WDDM2_8_1
131#define D3D_UMD_INTERFACE_VERSION_WDDM2_9_1 0xE000
132#define D3D_UMD_INTERFACE_VERSION_WDDM2_9 D3D_UMD_INTERFACE_VERSION_WDDM2_9_1
134#define D3D_UMD_INTERFACE_VERSION_WDDM3_0_1 0xF000
135#define D3D_UMD_INTERFACE_VERSION_WDDM3_0 D3D_UMD_INTERFACE_VERSION_WDDM3_0_1
140#if !defined(D3D_UMD_INTERFACE_VERSION)
141#define D3D_UMD_INTERFACE_VERSION D3D_UMD_INTERFACE_VERSION_WDDM3_0
162#define D3DKMT_ALIGN64
163#define D3DKMT_PTR_HELPER(Name)
164#define D3DKMT_PTR(Type, Name) Type Name
165#define D3DKMT_PTR_INIT(x) (x)
166typedef SIZE_T D3DKMT_SIZE_T;
169typedef HANDLE D3DKMT_PTR_TYPE;
172#if __cplusplus >= 201103L
173 #define D3DKMT_ALIGN64 alignas(8)
175 #define D3DKMT_ALIGN64 __attribute__((aligned(8)))
177#define D3DKMT_PTR_HELPER(Name) D3DKMT_ALIGN64 UINT64 Name;
178#define D3DKMT_PTR(Type, Name) \
179union D3DKMT_ALIGN64 \
181 D3DKMT_PTR_HELPER(Name##_Align) \
184#define D3DKMT_PTR_INIT(x) { (UINT64)(SIZE_T)(x) }
185typedef UINT64 D3DKMT_SIZE_T, D3DKMT_UINT_PTR, D3DKMT_ULONG_PTR;
186typedef union _D3DKMT_PTR_TYPE
188 D3DKMT_PTR_HELPER(Ptr_Align);
197#if defined(__REACTOS__) || ((NTDDI_VERSION >= NTDDI_LONGHORN) || defined(D3DKMDT_SPECIAL_MULTIPLATFORM_TOOL))
201#define D3DGPU_UNIQUE_DRIVER_PROTECTION 0x8000000000000000ULL
203#define DXGK_MAX_PAGE_TABLE_LEVEL_COUNT 6
204#define DXGK_MIN_PAGE_TABLE_LEVEL_COUNT 2
210#define IOCTL_GPUP_DRIVER_ESCAPE CTL_CODE(FILE_DEVICE_UNKNOWN, (8 + 0x910), METHOD_BUFFERED, FILE_READ_DATA)
211typedef struct _GPUP_DRIVER_ESCAPE_INPUT
214} GPUP_DRIVER_ESCAPE_INPUT, *PGPUP_DRIVER_ESCAPE_INPUT;
216typedef enum _DXGKVGPU_ESCAPE_TYPE
218 DXGKVGPU_ESCAPE_TYPE_READ_PCI_CONFIG = 0,
219 DXGKVGPU_ESCAPE_TYPE_WRITE_PCI_CONFIG = 1,
220 DXGKVGPU_ESCAPE_TYPE_INITIALIZE = 2,
221 DXGKVGPU_ESCAPE_TYPE_RELEASE = 3,
222 DXGKVGPU_ESCAPE_TYPE_GET_VGPU_TYPE = 4,
223 DXGKVGPU_ESCAPE_TYPE_POWERTRANSITIONCOMPLETE = 5,
224} DXGKVGPU_ESCAPE_TYPE;
226typedef struct _DXGKVGPU_ESCAPE_HEAD
228 GPUP_DRIVER_ESCAPE_INPUT Luid;
229 DXGKVGPU_ESCAPE_TYPE
Type;
230} DXGKVGPU_ESCAPE_HEAD;
232typedef struct _DXGKVGPU_ESCAPE_READ_PCI_CONFIG
234 DXGKVGPU_ESCAPE_HEAD
Header;
238} DXGKVGPU_ESCAPE_READ_PCI_CONFIG;
240typedef struct _DXGKVGPU_ESCAPE_WRITE_PCI_CONFIG
242 DXGKVGPU_ESCAPE_HEAD
Header;
247} DXGKVGPU_ESCAPE_WRITE_PCI_CONFIG;
249typedef struct _DXGKVGPU_ESCAPE_READ_VGPU_TYPE
251 DXGKVGPU_ESCAPE_HEAD
Header;
252} DXGKVGPU_ESCAPE_READ_VGPU_TYPE;
254typedef struct _DXGKVGPU_ESCAPE_POWERTRANSITIONCOMPLETE
256 DXGKVGPU_ESCAPE_HEAD
Header;
258} DXGKVGPU_ESCAPE_POWERTRANSITIONCOMPLETE;
260typedef struct _DXGKVGPU_ESCAPE_INITIALIZE
262 DXGKVGPU_ESCAPE_HEAD
Header;
264} DXGKVGPU_ESCAPE_INITIALIZE;
266typedef struct _DXGKVGPU_ESCAPE_RELEASE
268 DXGKVGPU_ESCAPE_HEAD
Header;
269} DXGKVGPU_ESCAPE_RELEASE;
272typedef enum _DXGK_PTE_PAGE_SIZE
274 DXGK_PTE_PAGE_TABLE_PAGE_4KB = 0,
275 DXGK_PTE_PAGE_TABLE_PAGE_64KB = 1,
282typedef struct _DXGK_PTE
310#define D3DDDI_MAX_WRITTEN_PRIMARIES 16
311#define D3DDDI_MAX_MPO_PRESENT_DIRTY_RECTS 0xFFF
313typedef struct _D3DGPU_PHYSICAL_ADDRESS
318} D3DGPU_PHYSICAL_ADDRESS;
324typedef UINT D3DDDI_VIDEO_PRESENT_SOURCE_ID;
329typedef UINT D3DDDI_VIDEO_PRESENT_TARGET_ID;
334typedef UINT D3DKMT_HANDLE;
353typedef struct _D3DDDI_RATIONAL
359typedef struct _D3DDDI_ALLOCATIONINFO
361 D3DKMT_HANDLE hAllocation;
363 D3DKMT_PTR(
VOID*, pPrivateDriverData);
364 UINT PrivateDriverDataSize;
365 D3DDDI_VIDEO_PRESENT_SOURCE_ID VidPnSourceId;
371#if ((DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WIN8) || \
372 (D3D_UMD_INTERFACE_VERSION >= D3D_UMD_INTERFACE_VERSION_WIN8))
381} D3DDDI_ALLOCATIONINFO;
383#if ((DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WIN7) || \
384 (D3D_UMD_INTERFACE_VERSION >= D3D_UMD_INTERFACE_VERSION_WIN7))
386typedef struct _D3DDDI_ALLOCATIONINFO2
388 D3DKMT_HANDLE hAllocation;
391 D3DKMT_PTR_HELPER(pSystemMem_hSection_Align)
395 D3DKMT_PTR(
VOID*, pPrivateDriverData);
396 UINT PrivateDriverDataSize;
397 D3DDDI_VIDEO_PRESENT_SOURCE_ID VidPnSourceId;
403#if ((DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WIN8) || \
404 (D3D_UMD_INTERFACE_VERSION >= D3D_UMD_INTERFACE_VERSION_WIN8))
406#if ((DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_2) || \
407 (D3D_UMD_INTERFACE_VERSION >= D3D_UMD_INTERFACE_VERSION_WDDM2_2))
408 UINT OverridePriority : 1;
419 D3DKMT_ALIGN64 D3DGPU_VIRTUAL_ADDRESS GpuVirtualAddress;
420#if ((DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_2) || \
421 (D3D_UMD_INTERFACE_VERSION >= D3D_UMD_INTERFACE_VERSION_WDDM2_2))
431} D3DDDI_ALLOCATIONINFO2;
435typedef struct _D3DDDI_OPENALLOCATIONINFO
437 D3DKMT_HANDLE hAllocation;
438 D3DKMT_PTR(
CONST VOID*, pPrivateDriverData);
439 UINT PrivateDriverDataSize;
441} D3DDDI_OPENALLOCATIONINFO;
443#if ((DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WIN7) || \
444 (D3D_UMD_INTERFACE_VERSION >= D3D_UMD_INTERFACE_VERSION_WIN7))
446typedef struct _D3DDDI_OPENALLOCATIONINFO2
448 D3DKMT_HANDLE hAllocation;
449 D3DKMT_PTR(
CONST VOID*, pPrivateDriverData);
450 UINT PrivateDriverDataSize;
451 D3DKMT_ALIGN64 D3DGPU_VIRTUAL_ADDRESS GpuVirtualAddress;
453} D3DDDI_OPENALLOCATIONINFO2;
457#if ((DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WIN8) || \
458 (D3D_UMD_INTERFACE_VERSION >= D3D_UMD_INTERFACE_VERSION_WIN8))
460typedef enum _D3DDDI_OFFER_PRIORITY
462 D3DDDI_OFFER_PRIORITY_NONE=0,
463 D3DDDI_OFFER_PRIORITY_LOW=1,
464 D3DDDI_OFFER_PRIORITY_NORMAL,
465 D3DDDI_OFFER_PRIORITY_HIGH,
466 D3DDDI_OFFER_PRIORITY_AUTO,
467} D3DDDI_OFFER_PRIORITY;
471typedef struct _D3DDDI_ALLOCATIONLIST
473 D3DKMT_HANDLE hAllocation;
478 UINT WriteOperation : 1;
479 UINT DoNotRetireInstance : 1;
481#if ((DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WIN8) || \
482 (D3D_UMD_INTERFACE_VERSION >= D3D_UMD_INTERFACE_VERSION_WIN8))
483 UINT OfferPriority : 3;
491} D3DDDI_ALLOCATIONLIST;
493typedef struct _D3DDDI_PATCHLOCATIONLIST
495 UINT AllocationIndex;
506 UINT AllocationOffset;
509} D3DDDI_PATCHLOCATIONLIST;
511typedef struct _D3DDDICB_LOCKFLAGS
523 UINT AcquireAperture : 1;
525 UINT NoExistingReference : 1;
526 UINT UseAlternateVA : 1;
527 UINT IgnoreReadSync : 1;
534typedef struct _D3DDDICB_LOCK2FLAGS
544} D3DDDICB_LOCK2FLAGS;
546typedef struct _D3DDDICB_DESTROYALLOCATION2FLAGS
552 UINT AssumeNotInUse : 1;
553 UINT SynchronousDestroy : 1;
555 UINT SystemUseOnly : 1;
559} D3DDDICB_DESTROYALLOCATION2FLAGS;
561typedef struct _D3DDDI_ESCAPEFLAGS
567 UINT HardwareAccess : 1;
568#if ((DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM1_3) || \
569 (D3D_UMD_INTERFACE_VERSION >= D3D_UMD_INTERFACE_VERSION_WDDM1_3))
570 UINT DeviceStatusQuery : 1;
571 UINT ChangeFrameLatency : 1;
572#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_0)
573 UINT NoAdapterSynchronization : 1;
574#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_2)
576 UINT VirtualMachineData : 1;
577#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_5)
578 UINT DriverKnownEscape : 1;
579 UINT DriverCommonEscape : 1;
598#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_5)
600typedef enum _D3DDDI_DRIVERESCAPETYPE
602 D3DDDI_DRIVERESCAPETYPE_TRANSLATEALLOCATIONHANDLE = 0,
603 D3DDDI_DRIVERESCAPETYPE_TRANSLATERESOURCEHANDLE = 1,
604#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM3_0)
605 D3DDDI_DRIVERESCAPETYPE_CPUEVENTUSAGE = 2,
607 D3DDDI_DRIVERESCAPETYPE_MAX,
608} D3DDDI_DRIVERESCAPETYPE;
610typedef struct _D3DDDI_DRIVERESCAPE_TRANSLATEALLOCATIONEHANDLE
612 D3DDDI_DRIVERESCAPETYPE EscapeType;
613 D3DKMT_HANDLE hAllocation;
614} D3DDDI_DRIVERESCAPE_TRANSLATEALLOCATIONEHANDLE;
616typedef struct _D3DDDI_DRIVERESCAPE_TRANSLATERESOURCEHANDLE
618 D3DDDI_DRIVERESCAPETYPE EscapeType;
619 D3DKMT_HANDLE hResource;
620} D3DDDI_DRIVERESCAPE_TRANSLATERESOURCEHANDLE;
624#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM3_0)
626typedef struct _D3DDDI_DRIVERESCAPE_CPUEVENTUSAGE
628 D3DDDI_DRIVERESCAPETYPE EscapeType;
629 D3DKMT_HANDLE hSyncObject;
630 D3DKMT_ALIGN64
UINT64 hKmdCpuEvent;
632} D3DDDI_DRIVERESCAPE_CPUEVENTUSAGE;
636typedef struct _D3DDDI_CREATECONTEXTFLAGS
642 UINT NullRendering : 1;
643 UINT InitialData : 1;
644#if ((DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_0) || \
645 (D3D_UMD_INTERFACE_VERSION >= D3D_UMD_INTERFACE_VERSION_WDDM2_0))
646 UINT DisableGpuTimeout : 1;
647 UINT SynchronizationOnly : 1;
648#if ((DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_3) || \
649 (D3D_UMD_INTERFACE_VERSION >= D3D_UMD_INTERFACE_VERSION_WDDM2_3_1))
650 UINT HwQueueSupported : 1;
651 UINT NoKmdAccess : 1;
663} D3DDDI_CREATECONTEXTFLAGS;
665#if ((DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_2) || \
666 (D3D_UMD_INTERFACE_VERSION >= D3D_UMD_INTERFACE_VERSION_WDDM2_2_1))
668typedef struct _D3DDDI_CREATEHWCONTEXTFLAGS
678} D3DDDI_CREATEHWCONTEXTFLAGS;
680typedef struct _D3DDDI_CREATEHWQUEUEFLAGS
686 UINT DisableGpuTimeout : 1;
687 UINT NoBroadcastSignal : 1;
688 UINT NoBroadcastWait : 1;
689 UINT NoKmdAccess : 1;
694} D3DDDI_CREATEHWQUEUEFLAGS;
698typedef struct _D3DDDI_SEGMENTPREFERENCE
718} D3DDDI_SEGMENTPREFERENCE;
750 #define MAKEFOURCC(ch0, ch1, ch2, ch3) \
751 ((DWORD)(BYTE)(ch0) | ((DWORD)(BYTE)(ch1) << 8) | \
752 ((DWORD)(BYTE)(ch2) << 16) | ((DWORD)(BYTE)(ch3) << 24 ))
756typedef enum _D3DDDIFORMAT
759 D3DDDIFMT_UNKNOWN = 0,
761 D3DDDIFMT_R8G8B8 = 20,
762 D3DDDIFMT_A8R8G8B8 = 21,
763 D3DDDIFMT_X8R8G8B8 = 22,
764 D3DDDIFMT_R5G6B5 = 23,
765 D3DDDIFMT_X1R5G5B5 = 24,
766 D3DDDIFMT_A1R5G5B5 = 25,
767 D3DDDIFMT_A4R4G4B4 = 26,
768 D3DDDIFMT_R3G3B2 = 27,
770 D3DDDIFMT_A8R3G3B2 = 29,
771 D3DDDIFMT_X4R4G4B4 = 30,
772 D3DDDIFMT_A2B10G10R10 = 31,
773 D3DDDIFMT_A8B8G8R8 = 32,
774 D3DDDIFMT_X8B8G8R8 = 33,
775 D3DDDIFMT_G16R16 = 34,
776 D3DDDIFMT_A2R10G10B10 = 35,
777 D3DDDIFMT_A16B16G16R16 = 36,
787 D3DDDIFMT_L6V5U5 = 61,
788 D3DDDIFMT_X8L8V8U8 = 62,
789 D3DDDIFMT_Q8W8V8U8 = 63,
790 D3DDDIFMT_V16U16 = 64,
791 D3DDDIFMT_W11V11U10 = 65,
792 D3DDDIFMT_A2W10V10U10 = 67,
794 D3DDDIFMT_UYVY =
MAKEFOURCC(
'U',
'Y',
'V',
'Y'),
795 D3DDDIFMT_R8G8_B8G8 =
MAKEFOURCC(
'R',
'G',
'B',
'G'),
796 D3DDDIFMT_YUY2 =
MAKEFOURCC(
'Y',
'U',
'Y',
'2'),
797 D3DDDIFMT_G8R8_G8B8 =
MAKEFOURCC(
'G',
'R',
'G',
'B'),
798 D3DDDIFMT_DXT1 =
MAKEFOURCC(
'D',
'X',
'T',
'1'),
799 D3DDDIFMT_DXT2 =
MAKEFOURCC(
'D',
'X',
'T',
'2'),
800 D3DDDIFMT_DXT3 =
MAKEFOURCC(
'D',
'X',
'T',
'3'),
801 D3DDDIFMT_DXT4 =
MAKEFOURCC(
'D',
'X',
'T',
'4'),
802 D3DDDIFMT_DXT5 =
MAKEFOURCC(
'D',
'X',
'T',
'5'),
804 D3DDDIFMT_D16_LOCKABLE = 70,
806 D3DDDIFMT_D15S1 = 73,
807 D3DDDIFMT_D24S8 = 75,
808 D3DDDIFMT_D24X8 = 77,
809 D3DDDIFMT_D24X4S4 = 79,
812 D3DDDIFMT_D32F_LOCKABLE = 82,
813 D3DDDIFMT_D24FS8 = 83,
815 D3DDDIFMT_D32_LOCKABLE = 84,
816 D3DDDIFMT_S8_LOCKABLE = 85,
818 D3DDDIFMT_S1D15 = 72,
819 D3DDDIFMT_S8D24 = 74,
820 D3DDDIFMT_X8D24 = 76,
821 D3DDDIFMT_X4S4D24 = 78,
824#if (D3D_UMD_INTERFACE_VERSION >= D3D_UMD_INTERFACE_VERSION_WDDM1_3)
829 D3DDDIFMT_VERTEXDATA =100,
830 D3DDDIFMT_INDEX16 =101,
831 D3DDDIFMT_INDEX32 =102,
833 D3DDDIFMT_Q16W16V16U16 =110,
835 D3DDDIFMT_MULTI2_ARGB8 =
MAKEFOURCC(
'M',
'E',
'T',
'1'),
840 D3DDDIFMT_R16F = 111,
841 D3DDDIFMT_G16R16F = 112,
842 D3DDDIFMT_A16B16G16R16F = 113,
845 D3DDDIFMT_R32F = 114,
846 D3DDDIFMT_G32R32F = 115,
847 D3DDDIFMT_A32B32G32R32F = 116,
849 D3DDDIFMT_CxV8U8 = 117,
855 D3DDDIFMT_A2B10G10R10_XR_BIAS = 119,
858 D3DDDIFMT_DXVACOMPBUFFER_BASE = 150,
859 D3DDDIFMT_PICTUREPARAMSDATA = D3DDDIFMT_DXVACOMPBUFFER_BASE+0,
860 D3DDDIFMT_MACROBLOCKDATA = D3DDDIFMT_DXVACOMPBUFFER_BASE+1,
861 D3DDDIFMT_RESIDUALDIFFERENCEDATA = D3DDDIFMT_DXVACOMPBUFFER_BASE+2,
862 D3DDDIFMT_DEBLOCKINGDATA = D3DDDIFMT_DXVACOMPBUFFER_BASE+3,
863 D3DDDIFMT_INVERSEQUANTIZATIONDATA = D3DDDIFMT_DXVACOMPBUFFER_BASE+4,
864 D3DDDIFMT_SLICECONTROLDATA = D3DDDIFMT_DXVACOMPBUFFER_BASE+5,
865 D3DDDIFMT_BITSTREAMDATA = D3DDDIFMT_DXVACOMPBUFFER_BASE+6,
866 D3DDDIFMT_MOTIONVECTORBUFFER = D3DDDIFMT_DXVACOMPBUFFER_BASE+7,
867 D3DDDIFMT_FILMGRAINBUFFER = D3DDDIFMT_DXVACOMPBUFFER_BASE+8,
868 D3DDDIFMT_DXVA_RESERVED9 = D3DDDIFMT_DXVACOMPBUFFER_BASE+9,
869 D3DDDIFMT_DXVA_RESERVED10 = D3DDDIFMT_DXVACOMPBUFFER_BASE+10,
870 D3DDDIFMT_DXVA_RESERVED11 = D3DDDIFMT_DXVACOMPBUFFER_BASE+11,
871 D3DDDIFMT_DXVA_RESERVED12 = D3DDDIFMT_DXVACOMPBUFFER_BASE+12,
872 D3DDDIFMT_DXVA_RESERVED13 = D3DDDIFMT_DXVACOMPBUFFER_BASE+13,
873 D3DDDIFMT_DXVA_RESERVED14 = D3DDDIFMT_DXVACOMPBUFFER_BASE+14,
874 D3DDDIFMT_DXVA_RESERVED15 = D3DDDIFMT_DXVACOMPBUFFER_BASE+15,
875 D3DDDIFMT_DXVA_RESERVED16 = D3DDDIFMT_DXVACOMPBUFFER_BASE+16,
876 D3DDDIFMT_DXVA_RESERVED17 = D3DDDIFMT_DXVACOMPBUFFER_BASE+17,
877 D3DDDIFMT_DXVA_RESERVED18 = D3DDDIFMT_DXVACOMPBUFFER_BASE+18,
878 D3DDDIFMT_DXVA_RESERVED19 = D3DDDIFMT_DXVACOMPBUFFER_BASE+19,
879 D3DDDIFMT_DXVA_RESERVED20 = D3DDDIFMT_DXVACOMPBUFFER_BASE+20,
880 D3DDDIFMT_DXVA_RESERVED21 = D3DDDIFMT_DXVACOMPBUFFER_BASE+21,
881 D3DDDIFMT_DXVA_RESERVED22 = D3DDDIFMT_DXVACOMPBUFFER_BASE+22,
882 D3DDDIFMT_DXVA_RESERVED23 = D3DDDIFMT_DXVACOMPBUFFER_BASE+23,
883 D3DDDIFMT_DXVA_RESERVED24 = D3DDDIFMT_DXVACOMPBUFFER_BASE+24,
884 D3DDDIFMT_DXVA_RESERVED25 = D3DDDIFMT_DXVACOMPBUFFER_BASE+25,
885 D3DDDIFMT_DXVA_RESERVED26 = D3DDDIFMT_DXVACOMPBUFFER_BASE+26,
886 D3DDDIFMT_DXVA_RESERVED27 = D3DDDIFMT_DXVACOMPBUFFER_BASE+27,
887 D3DDDIFMT_DXVA_RESERVED28 = D3DDDIFMT_DXVACOMPBUFFER_BASE+28,
888 D3DDDIFMT_DXVA_RESERVED29 = D3DDDIFMT_DXVACOMPBUFFER_BASE+29,
889 D3DDDIFMT_DXVA_RESERVED30 = D3DDDIFMT_DXVACOMPBUFFER_BASE+30,
890 D3DDDIFMT_DXVA_RESERVED31 = D3DDDIFMT_DXVACOMPBUFFER_BASE+31,
891 D3DDDIFMT_DXVACOMPBUFFER_MAX = D3DDDIFMT_DXVA_RESERVED31,
893 D3DDDIFMT_BINARYBUFFER = 199,
895 D3DDDIFMT_FORCE_UINT =0x7fffffff
898typedef enum D3DDDI_COLOR_SPACE_TYPE
900 D3DDDI_COLOR_SPACE_RGB_FULL_G22_NONE_P709 = 0,
901 D3DDDI_COLOR_SPACE_RGB_FULL_G10_NONE_P709 = 1,
902 D3DDDI_COLOR_SPACE_RGB_STUDIO_G22_NONE_P709 = 2,
903 D3DDDI_COLOR_SPACE_RGB_STUDIO_G22_NONE_P2020 = 3,
904 D3DDDI_COLOR_SPACE_RESERVED = 4,
905 D3DDDI_COLOR_SPACE_YCBCR_FULL_G22_NONE_P709_X601 = 5,
906 D3DDDI_COLOR_SPACE_YCBCR_STUDIO_G22_LEFT_P601 = 6,
907 D3DDDI_COLOR_SPACE_YCBCR_FULL_G22_LEFT_P601 = 7,
908 D3DDDI_COLOR_SPACE_YCBCR_STUDIO_G22_LEFT_P709 = 8,
909 D3DDDI_COLOR_SPACE_YCBCR_FULL_G22_LEFT_P709 = 9,
910 D3DDDI_COLOR_SPACE_YCBCR_STUDIO_G22_LEFT_P2020 = 10,
911 D3DDDI_COLOR_SPACE_YCBCR_FULL_G22_LEFT_P2020 = 11,
912 D3DDDI_COLOR_SPACE_RGB_FULL_G2084_NONE_P2020 = 12,
913 D3DDDI_COLOR_SPACE_YCBCR_STUDIO_G2084_LEFT_P2020 = 13,
914 D3DDDI_COLOR_SPACE_RGB_STUDIO_G2084_NONE_P2020 = 14,
915 D3DDDI_COLOR_SPACE_YCBCR_STUDIO_G22_TOPLEFT_P2020 = 15,
916 D3DDDI_COLOR_SPACE_YCBCR_STUDIO_G2084_TOPLEFT_P2020 = 16,
917 D3DDDI_COLOR_SPACE_RGB_FULL_G22_NONE_P2020 = 17,
918 D3DDDI_COLOR_SPACE_YCBCR_STUDIO_GHLG_TOPLEFT_P2020 = 18,
919 D3DDDI_COLOR_SPACE_YCBCR_FULL_GHLG_TOPLEFT_P2020 = 19,
920 D3DDDI_COLOR_SPACE_RGB_STUDIO_G24_NONE_P709 = 20,
921 D3DDDI_COLOR_SPACE_RGB_STUDIO_G24_NONE_P2020 = 21,
922 D3DDDI_COLOR_SPACE_YCBCR_STUDIO_G24_LEFT_P709 = 22,
923 D3DDDI_COLOR_SPACE_YCBCR_STUDIO_G24_LEFT_P2020 = 23,
924 D3DDDI_COLOR_SPACE_YCBCR_STUDIO_G24_TOPLEFT_P2020 = 24,
925 D3DDDI_COLOR_SPACE_CUSTOM = 0xFFFFFFFF
926} D3DDDI_COLOR_SPACE_TYPE;
934typedef enum _D3DDDI_OUTPUT_WIRE_COLOR_SPACE_TYPE
939 D3DDDI_OUTPUT_WIRE_COLOR_SPACE_G22_P709 = 0,
940 D3DDDI_OUTPUT_WIRE_COLOR_SPACE_RESERVED = 4,
941 D3DDDI_OUTPUT_WIRE_COLOR_SPACE_G2084_P2020 = 12,
946 D3DDDI_OUTPUT_WIRE_COLOR_SPACE_G22_P709_WCG = 30,
950 D3DDDI_OUTPUT_WIRE_COLOR_SPACE_G22_P2020 = 31,
954 D3DDDI_OUTPUT_WIRE_COLOR_SPACE_G2084_P2020_HDR10PLUS = 32,
958 D3DDDI_OUTPUT_WIRE_COLOR_SPACE_G2084_P2020_DVLL = 33,
959} D3DDDI_OUTPUT_WIRE_COLOR_SPACE_TYPE;
961typedef struct _D3DDDIRECT
969typedef struct _D3DDDI_KERNELOVERLAYINFO
971 D3DKMT_HANDLE hAllocation;
974 D3DKMT_PTR(
VOID*, pPrivateDriverData);
975 UINT PrivateDriverDataSize;
976} D3DDDI_KERNELOVERLAYINFO;
978typedef enum _D3DDDI_GAMMARAMP_TYPE
980 D3DDDI_GAMMARAMP_UNINITIALIZED = 0,
981 D3DDDI_GAMMARAMP_DEFAULT = 1,
982 D3DDDI_GAMMARAMP_RGB256x3x16 = 2,
983 D3DDDI_GAMMARAMP_DXGI_1 = 3,
984#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_3)
985 D3DDDI_GAMMARAMP_MATRIX_3x4 = 4,
987#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_6)
988 D3DDDI_GAMMARAMP_MATRIX_V2 = 5,
990} D3DDDI_GAMMARAMP_TYPE;
992typedef struct _D3DDDI_GAMMA_RAMP_RGB256x3x16
997} D3DDDI_GAMMA_RAMP_RGB256x3x16;
999typedef struct D3DDDI_DXGI_RGB
1006typedef struct _D3DDDI_GAMMA_RAMP_DXGI_1
1008 D3DDDI_DXGI_RGB Scale;
1010 D3DDDI_DXGI_RGB GammaCurve[1025];
1011} D3DDDI_GAMMA_RAMP_DXGI_1;
1013typedef struct _D3DKMDT_3X4_COLORSPACE_TRANSFORM
1015 float ColorMatrix3x4[3][4];
1016 float ScalarMultiplier;
1017 D3DDDI_DXGI_RGB LookupTable1D[4096];
1018} D3DKMDT_3x4_COLORSPACE_TRANSFORM, *PD3DDDI_3x4_COLORSPACE_TRANSFORM;
1020typedef enum _D3DKMDT_COLORSPACE_TRANSFORM_STAGE_CONTROL
1022 D3DKMDT_COLORSPACE_TRANSFORM_STAGE_CONTROL_NO_CHANGE = 0,
1023 D3DKMDT_COLORSPACE_TRANSFORM_STAGE_CONTROL_ENABLE = 1,
1024 D3DKMDT_COLORSPACE_TRANSFORM_STAGE_CONTROL_BYPASS = 2,
1025}D3DKMDT_COLORSPACE_TRANSFORM_STAGE_CONTROL, *PD3DKMDT_COLORSPACE_TRANSFORM_STAGE_CONTROL;
1027typedef struct _D3DKMDT_COLORSPACE_TRANSFORM_MATRIX_V2
1030 D3DKMDT_COLORSPACE_TRANSFORM_STAGE_CONTROL StageControlLookupTable1DDegamma;
1031 D3DDDI_DXGI_RGB LookupTable1DDegamma[4096];
1034 D3DKMDT_COLORSPACE_TRANSFORM_STAGE_CONTROL StageControlColorMatrix3x3;
1035 float ColorMatrix3x3[3][3];
1038 D3DKMDT_COLORSPACE_TRANSFORM_STAGE_CONTROL StageControlLookupTable1DRegamma;
1039 D3DDDI_DXGI_RGB LookupTable1DRegamma[4096];
1040} D3DKMDT_COLORSPACE_TRANSFORM_MATRIX_V2, *PD3DKMDT_COLORSPACE_TRANSFORM_MATRIX_V2;
1042typedef enum _D3DDDI_HDR_METADATA_TYPE
1044 D3DDDI_HDR_METADATA_TYPE_NONE = 0,
1045 D3DDDI_HDR_METADATA_TYPE_HDR10 = 1,
1046 D3DDDI_HDR_METADATA_TYPE_HDR10PLUS = 2,
1047} D3DDDI_HDR_METADATA_TYPE;
1049typedef struct _D3DDDI_HDR_METADATA_HDR10
1058 UINT MaxMasteringLuminance;
1059 UINT MinMasteringLuminance;
1060 UINT16 MaxContentLightLevel;
1061 UINT16 MaxFrameAverageLightLevel;
1062} D3DDDI_HDR_METADATA_HDR10;
1064typedef struct D3DDDI_HDR_METADATA_HDR10PLUS
1067} D3DDDI_HDR_METADATA_HDR10PLUS;
1071#define D3DDDI_ID_UNINITIALIZED (UINT)(~0)
1077#define D3DDDI_ID_NOTAPPLICABLE (UINT)(0)
1080#define D3DDDI_ID_ANY (UINT)(~1)
1084#define D3DDDI_ID_ALL (UINT)(~2)
1089#define D3DKMDT_MAX_VIDPN_SOURCES_BITCOUNT 4
1090#define D3DKMDT_MAX_VIDPN_SOURCES (1 << D3DKMDT_MAX_VIDPN_SOURCES_BITCOUNT)
1100typedef struct _D3DDDI_MULTISAMPLINGMETHOD
1107 UINT NumQualityLevels;
1109D3DDDI_MULTISAMPLINGMETHOD;
1122typedef enum _D3DDDI_VIDEO_SIGNAL_SCANLINE_ORDERING
1124 D3DDDI_VSSLO_UNINITIALIZED = 0,
1125 D3DDDI_VSSLO_PROGRESSIVE = 1,
1126 D3DDDI_VSSLO_INTERLACED_UPPERFIELDFIRST = 2,
1127 D3DDDI_VSSLO_INTERLACED_LOWERFIELDFIRST = 3,
1128 D3DDDI_VSSLO_OTHER = 255
1130D3DDDI_VIDEO_SIGNAL_SCANLINE_ORDERING;
1133typedef enum D3DDDI_FLIPINTERVAL_TYPE
1135 D3DDDI_FLIPINTERVAL_IMMEDIATE = 0,
1136 D3DDDI_FLIPINTERVAL_ONE = 1,
1137 D3DDDI_FLIPINTERVAL_TWO = 2,
1138 D3DDDI_FLIPINTERVAL_THREE = 3,
1139 D3DDDI_FLIPINTERVAL_FOUR = 4,
1144 D3DDDI_FLIPINTERVAL_IMMEDIATE_ALLOW_TEARING = 5,
1145} D3DDDI_FLIPINTERVAL_TYPE;
1148typedef enum _D3DDDI_POOL
1150 D3DDDIPOOL_SYSTEMMEM = 1,
1151 D3DDDIPOOL_VIDEOMEMORY = 2,
1152 D3DDDIPOOL_LOCALVIDMEM = 3,
1153 D3DDDIPOOL_NONLOCALVIDMEM = 4,
1154#if (D3D_UMD_INTERFACE_VERSION >= D3D_UMD_INTERFACE_VERSION_WDDM1_3)
1155 D3DDDIPOOL_STAGINGMEM = 5,
1160typedef enum _D3DDDIMULTISAMPLE_TYPE
1162 D3DDDIMULTISAMPLE_NONE = 0,
1163 D3DDDIMULTISAMPLE_NONMASKABLE = 1,
1164 D3DDDIMULTISAMPLE_2_SAMPLES = 2,
1165 D3DDDIMULTISAMPLE_3_SAMPLES = 3,
1166 D3DDDIMULTISAMPLE_4_SAMPLES = 4,
1167 D3DDDIMULTISAMPLE_5_SAMPLES = 5,
1168 D3DDDIMULTISAMPLE_6_SAMPLES = 6,
1169 D3DDDIMULTISAMPLE_7_SAMPLES = 7,
1170 D3DDDIMULTISAMPLE_8_SAMPLES = 8,
1171 D3DDDIMULTISAMPLE_9_SAMPLES = 9,
1172 D3DDDIMULTISAMPLE_10_SAMPLES = 10,
1173 D3DDDIMULTISAMPLE_11_SAMPLES = 11,
1174 D3DDDIMULTISAMPLE_12_SAMPLES = 12,
1175 D3DDDIMULTISAMPLE_13_SAMPLES = 13,
1176 D3DDDIMULTISAMPLE_14_SAMPLES = 14,
1177 D3DDDIMULTISAMPLE_15_SAMPLES = 15,
1178 D3DDDIMULTISAMPLE_16_SAMPLES = 16,
1180 D3DDDIMULTISAMPLE_FORCE_UINT = 0x7fffffff
1181} D3DDDIMULTISAMPLE_TYPE;
1183typedef struct _D3DDDI_RESOURCEFLAGS
1189 UINT RenderTarget : 1;
1192 UINT HintStatic : 1;
1193 UINT AutogenMipmap : 1;
1196 UINT NotLockable : 1;
1200 UINT SharedResource : 1;
1201 UINT DiscardRenderTarget : 1;
1203 UINT CaptureBuffer : 1;
1208 UINT VertexBuffer : 1;
1209 UINT IndexBuffer : 1;
1210 UINT DecodeRenderTarget : 1;
1211 UINT DecodeCompressedBuffer : 1;
1212 UINT VideoProcessRenderTarget: 1;
1213 UINT CpuOptimized : 1;
1214 UINT MightDrawFromLocked : 1;
1216 UINT MatchGdiPrimary : 1;
1217 UINT InterlacedRefresh : 1;
1219 UINT RestrictedContent : 1;
1220 UINT RestrictSharedAccess : 1;
1224} D3DDDI_RESOURCEFLAGS;
1226typedef struct _D3DDDI_SURFACEINFO
1233 UINT SysMemSlicePitch;
1234} D3DDDI_SURFACEINFO;
1236typedef enum _D3DDDI_ROTATION
1238 D3DDDI_ROTATION_IDENTITY = 1,
1239 D3DDDI_ROTATION_90 = 2,
1240 D3DDDI_ROTATION_180 = 3,
1241 D3DDDI_ROTATION_270 = 4
1244typedef enum D3DDDI_SCANLINEORDERING
1246 D3DDDI_SCANLINEORDERING_UNKNOWN = 0,
1247 D3DDDI_SCANLINEORDERING_PROGRESSIVE = 1,
1248 D3DDDI_SCANLINEORDERING_INTERLACED = 2,
1249} D3DDDI_SCANLINEORDERING;
1251typedef struct _D3DDDIARG_CREATERESOURCE
1255 D3DDDIMULTISAMPLE_TYPE MultisampleType;
1256 UINT MultisampleQuality;
1257 CONST D3DDDI_SURFACEINFO* pSurfList;
1261 D3DDDI_VIDEO_PRESENT_SOURCE_ID VidPnSourceId;
1262 D3DDDI_RATIONAL RefreshRate;
1264 D3DDDI_RESOURCEFLAGS
Flags;
1265 D3DDDI_ROTATION Rotation;
1266} D3DDDIARG_CREATERESOURCE;
1268#if ((DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WIN8) || \
1269 (D3D_UMD_INTERFACE_VERSION >= D3D_UMD_INTERFACE_VERSION_WIN8))
1271typedef struct _D3DDDI_RESOURCEFLAGS2
1277 UINT VideoEncoder : 1;
1278 UINT UserMemory : 1;
1279#if ((DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM1_3) || \
1280 (D3D_UMD_INTERFACE_VERSION >= D3D_UMD_INTERFACE_VERSION_WDDM1_3))
1281 UINT CrossAdapter : 1;
1282#if ((DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_0) || \
1283 (D3D_UMD_INTERFACE_VERSION >= D3D_UMD_INTERFACE_VERSION_WDDM2_0))
1284 UINT IsDisplayable : 1;
1295} D3DDDI_RESOURCEFLAGS2;
1298typedef struct _D3DDDIARG_CREATERESOURCE2
1302 D3DDDIMULTISAMPLE_TYPE MultisampleType;
1303 UINT MultisampleQuality;
1304 CONST D3DDDI_SURFACEINFO* pSurfList;
1308 D3DDDI_VIDEO_PRESENT_SOURCE_ID VidPnSourceId;
1309 D3DDDI_RATIONAL RefreshRate;
1311 D3DDDI_RESOURCEFLAGS
Flags;
1312 D3DDDI_ROTATION Rotation;
1313 D3DDDI_RESOURCEFLAGS2
Flags2;
1314} D3DDDIARG_CREATERESOURCE2;
1317typedef struct _D3DDDICB_SIGNALFLAGS
1323 UINT SignalAtSubmission : 1;
1324#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WIN8)
1325 UINT EnqueueCpuEvent : 1;
1326#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_0)
1327 UINT AllowFenceRewind : 1;
1329 UINT DXGK_SIGNAL_FLAG_INTERNAL0 : 1;
1339} D3DDDICB_SIGNALFLAGS;
1341#define D3DDDI_MAX_OBJECT_WAITED_ON 32
1342#define D3DDDI_MAX_OBJECT_SIGNALED 32
1344typedef enum _D3DDDI_SYNCHRONIZATIONOBJECT_TYPE
1346 D3DDDI_SYNCHRONIZATION_MUTEX = 1,
1347 D3DDDI_SEMAPHORE = 2,
1349 D3DDDI_CPU_NOTIFICATION = 4,
1351#if ((DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_0) || \
1352 (D3D_UMD_INTERFACE_VERSION >= D3D_UMD_INTERFACE_VERSION_WDDM2_0))
1353 D3DDDI_MONITORED_FENCE = 5,
1356#if ((DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_2) || \
1357 (D3D_UMD_INTERFACE_VERSION >= D3D_UMD_INTERFACE_VERSION_WDDM2_2))
1358 D3DDDI_PERIODIC_MONITORED_FENCE = 6,
1361 D3DDDI_SYNCHRONIZATION_TYPE_LIMIT
1363} D3DDDI_SYNCHRONIZATIONOBJECT_TYPE;
1365#if ((DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_0) || \
1366 (D3D_UMD_INTERFACE_VERSION >= D3D_UMD_INTERFACE_VERSION_WDDM2_0))
1368#define D3DDDI_SYNC_OBJECT_WAIT 0x1
1369#define D3DDDI_SYNC_OBJECT_SIGNAL 0x2
1370#define D3DDDI_SYNC_OBJECT_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | D3DDDI_SYNC_OBJECT_WAIT | D3DDDI_SYNC_OBJECT_SIGNAL)
1374#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM1_3)
1384}DXGK_MIRACAST_CHUNK_ID;
1386typedef enum _DXGK_MIRACAST_CHUNK_TYPE
1388 DXGK_MIRACAST_CHUNK_TYPE_UNKNOWN = 0,
1389 DXGK_MIRACAST_CHUNK_TYPE_COLOR_CONVERT_COMPLETE = 1,
1390 DXGK_MIRACAST_CHUNK_TYPE_ENCODE_COMPLETE = 2,
1391 DXGK_MIRACAST_CHUNK_TYPE_FRAME_START = 3,
1392 DXGK_MIRACAST_CHUNK_TYPE_FRAME_DROPPED = 4,
1393 DXGK_MIRACAST_CHUNK_TYPE_ENCODE_DRIVER_DEFINED_1 = 0x80000000,
1394 DXGK_MIRACAST_CHUNK_TYPE_ENCODE_DRIVER_DEFINED_2 = 0x80000001,
1395} DXGK_MIRACAST_CHUNK_TYPE;
1399 DXGK_MIRACAST_CHUNK_TYPE ChunkType;
1400 DXGK_MIRACAST_CHUNK_ID ChunkId;
1401 UINT ProcessingTime;
1403} DXGK_MIRACAST_CHUNK_INFO;
1406#if ((DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_0) || \
1407 (D3D_UMD_INTERFACE_VERSION >= D3D_UMD_INTERFACE_VERSION_WDDM2_0))
1409typedef enum D3DDDI_PAGINGQUEUE_PRIORITY
1411 D3DDDI_PAGINGQUEUE_PRIORITY_BELOW_NORMAL = -1,
1412 D3DDDI_PAGINGQUEUE_PRIORITY_NORMAL = 0,
1413 D3DDDI_PAGINGQUEUE_PRIORITY_ABOVE_NORMAL = 1,
1414} D3DDDI_PAGINGQUEUE_PRIORITY;
1416typedef struct D3DDDI_MAKERESIDENT_FLAGS
1422 UINT CantTrimFurther : 1;
1424 UINT MustSucceed : 1;
1429} D3DDDI_MAKERESIDENT_FLAGS;
1431typedef struct D3DDDI_MAKERESIDENT
1433 D3DKMT_HANDLE hPagingQueue;
1434 UINT NumAllocations;
1437 CONST D3DKMT_HANDLE*, AllocationList);
1439 D3DDDI_MAKERESIDENT_FLAGS
Flags;
1440 D3DKMT_ALIGN64
UINT64 PagingFenceValue;
1443 D3DKMT_ALIGN64
UINT64 NumBytesToTrim;
1445} D3DDDI_MAKERESIDENT;
1447typedef struct D3DDDI_EVICT_FLAGS
1453 UINT EvictOnlyIfNecessary : 1;
1454 UINT NotWrittenTo : 1;
1459} D3DDDI_EVICT_FLAGS;
1461typedef struct D3DDDI_TRIMRESIDENCYSET_FLAGS
1467 UINT PeriodicTrim : 1;
1471 UINT RestartPeriodicTrim : 1;
1473 UINT TrimToBudget : 1;
1479} D3DDDI_TRIMRESIDENCYSET_FLAGS;
1481typedef struct _D3DDDIGPUVIRTUALADDRESS_PROTECTION_TYPE
1491 UINT64 SystemUseOnly : 1;
1496} D3DDDIGPUVIRTUALADDRESS_PROTECTION_TYPE;
1498typedef enum _D3DDDI_UPDATEGPUVIRTUALADDRESS_OPERATION_TYPE
1500 D3DDDI_UPDATEGPUVIRTUALADDRESS_MAP = 0,
1501 D3DDDI_UPDATEGPUVIRTUALADDRESS_UNMAP = 1,
1502 D3DDDI_UPDATEGPUVIRTUALADDRESS_COPY = 2,
1503 D3DDDI_UPDATEGPUVIRTUALADDRESS_MAP_PROTECT = 3,
1504} D3DDDI_UPDATEGPUVIRTUALADDRESS_OPERATION_TYPE;
1506typedef struct _D3DDDI_UPDATEGPUVIRTUALADDRESS_OPERATION
1508 D3DDDI_UPDATEGPUVIRTUALADDRESS_OPERATION_TYPE OperationType;
1513 D3DKMT_ALIGN64 D3DGPU_VIRTUAL_ADDRESS
BaseAddress;
1514 D3DKMT_ALIGN64 D3DGPU_SIZE_T SizeInBytes;
1515 D3DKMT_HANDLE hAllocation;
1516 D3DKMT_ALIGN64 D3DGPU_SIZE_T AllocationOffsetInBytes;
1517 D3DKMT_ALIGN64 D3DGPU_SIZE_T AllocationSizeInBytes;
1521 D3DKMT_ALIGN64 D3DGPU_VIRTUAL_ADDRESS
BaseAddress;
1522 D3DKMT_ALIGN64 D3DGPU_SIZE_T SizeInBytes;
1523 D3DKMT_HANDLE hAllocation;
1524 D3DKMT_ALIGN64 D3DGPU_SIZE_T AllocationOffsetInBytes;
1525 D3DKMT_ALIGN64 D3DGPU_SIZE_T AllocationSizeInBytes;
1526 D3DDDIGPUVIRTUALADDRESS_PROTECTION_TYPE Protection;
1527 D3DKMT_ALIGN64
UINT64 DriverProtection;
1531 D3DKMT_ALIGN64 D3DGPU_VIRTUAL_ADDRESS
BaseAddress;
1532 D3DKMT_ALIGN64 D3DGPU_SIZE_T SizeInBytes;
1533 D3DDDIGPUVIRTUALADDRESS_PROTECTION_TYPE Protection;
1538 D3DKMT_ALIGN64 D3DGPU_SIZE_T SizeInBytes;
1539 D3DKMT_ALIGN64 D3DGPU_VIRTUAL_ADDRESS DestAddress;
1542} D3DDDI_UPDATEGPUVIRTUALADDRESS_OPERATION;
1544typedef enum _D3DDDIGPUVIRTUALADDRESS_RESERVATION_TYPE
1546 D3DDDIGPUVIRTUALADDRESS_RESERVE_NO_ACCESS = 0,
1547 D3DDDIGPUVIRTUALADDRESS_RESERVE_ZERO = 1,
1548 D3DDDIGPUVIRTUALADDRESS_RESERVE_NO_COMMIT = 2
1549} D3DDDIGPUVIRTUALADDRESS_RESERVATION_TYPE;
1551typedef struct D3DDDI_MAPGPUVIRTUALADDRESS
1553 D3DKMT_HANDLE hPagingQueue;
1554 D3DKMT_ALIGN64 D3DGPU_VIRTUAL_ADDRESS
BaseAddress;
1555 D3DKMT_ALIGN64 D3DGPU_VIRTUAL_ADDRESS MinimumAddress;
1556 D3DKMT_ALIGN64 D3DGPU_VIRTUAL_ADDRESS MaximumAddress;
1557 D3DKMT_HANDLE hAllocation;
1558 D3DKMT_ALIGN64 D3DGPU_SIZE_T OffsetInPages;
1559 D3DKMT_ALIGN64 D3DGPU_SIZE_T SizeInPages;
1560 D3DDDIGPUVIRTUALADDRESS_PROTECTION_TYPE Protection;
1561 D3DKMT_ALIGN64
UINT64 DriverProtection;
1565 D3DKMT_ALIGN64
UINT64 PagingFenceValue;
1566} D3DDDI_MAPGPUVIRTUALADDRESS;
1568typedef struct D3DDDI_RESERVEGPUVIRTUALADDRESS
1572 D3DKMT_HANDLE hPagingQueue;
1573 D3DKMT_HANDLE hAdapter;
1575 D3DKMT_ALIGN64 D3DGPU_VIRTUAL_ADDRESS
BaseAddress;
1576 D3DKMT_ALIGN64 D3DGPU_VIRTUAL_ADDRESS MinimumAddress;
1577 D3DKMT_ALIGN64 D3DGPU_VIRTUAL_ADDRESS MaximumAddress;
1578 D3DKMT_ALIGN64 D3DGPU_SIZE_T
Size;
1581 D3DDDIGPUVIRTUALADDRESS_RESERVATION_TYPE ReservationType;
1586 D3DKMT_ALIGN64
UINT64 DriverProtection;
1592 D3DKMT_ALIGN64
UINT64 PagingFenceValue;
1595} D3DDDI_RESERVEGPUVIRTUALADDRESS;
1597typedef struct _D3DDDI_GETRESOURCEPRESENTPRIVATEDRIVERDATA
1599 D3DKMT_HANDLE hResource;
1600 UINT PrivateDriverDataSize;
1601 D3DKMT_PTR(
PVOID, pPrivateDriverData);
1602} D3DDDI_GETRESOURCEPRESENTPRIVATEDRIVERDATA;
1604typedef struct D3DDDI_DESTROYPAGINGQUEUE
1606 D3DKMT_HANDLE hPagingQueue;
1607} D3DDDI_DESTROYPAGINGQUEUE;
1611#if ((DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_1) || \
1612 (D3D_UMD_INTERFACE_VERSION >= D3D_UMD_INTERFACE_VERSION_WDDM2_1_1))
1614typedef struct D3DDDI_UPDATEALLOCPROPERTY_FLAGS
1620 UINT AccessedPhysically : 1;
1621 UINT Unmoveable : 1;
1626} D3DDDI_UPDATEALLOCPROPERTY_FLAGS;
1628typedef struct D3DDDI_UPDATEALLOCPROPERTY
1630 D3DKMT_HANDLE hPagingQueue;
1631 D3DKMT_HANDLE hAllocation;
1632 UINT SupportedSegmentSet;
1633 D3DDDI_SEGMENTPREFERENCE PreferredSegment;
1634 D3DDDI_UPDATEALLOCPROPERTY_FLAGS
Flags;
1635 D3DKMT_ALIGN64
UINT64 PagingFenceValue;
1642 UINT SetAccessedPhysically : 1;
1643 UINT SetSupportedSegmentSet : 1;
1644 UINT SetPreferredSegment : 1;
1645 UINT SetUnmoveable : 1;
1648 UINT PropertyMaskValue;
1650} D3DDDI_UPDATEALLOCPROPERTY;
1654#if(D3D_UMD_INTERFACE_VERSION >= D3D_UMD_INTERFACE_VERSION_WDDM2_1_1)
1656typedef struct D3DDDI_OFFER_FLAGS
1662 UINT AllowDecommit : 1;
1667} D3DDDI_OFFER_FLAGS;
1671#if(DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_1 || \
1672 D3D_UMD_INTERFACE_VERSION >= D3D_UMD_INTERFACE_VERSION_WDDM2_1)
1674typedef enum _D3DDDI_RECLAIM_RESULT
1676 D3DDDI_RECLAIM_RESULT_OK = 0,
1677 D3DDDI_RECLAIM_RESULT_DISCARDED = 1,
1678 D3DDDI_RECLAIM_RESULT_NOT_COMMITTED = 2,
1679} D3DDDI_RECLAIM_RESULT;
1683typedef struct _D3DDDI_SYNCHRONIZATIONOBJECTINFO
1685 D3DDDI_SYNCHRONIZATIONOBJECT_TYPE
Type;
1691 } SynchronizationMutex;
1705} D3DDDI_SYNCHRONIZATIONOBJECTINFO;
1707#ifndef D3DDDI_SYNCHRONIZATIONOBJECT_FLAGS_EXT
1708#define D3DDDI_SYNCHRONIZATIONOBJECT_FLAGS_EXT
1709#define D3DDDI_SYNCHRONIZATIONOBJECT_FLAGS_RESERVED0 Reserved0
1712typedef struct _D3DDDI_SYNCHRONIZATIONOBJECT_FLAGS
1719 UINT NtSecuritySharing : 1;
1720#if ((DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM1_3) || \
1721 (D3D_UMD_INTERFACE_VERSION >= D3D_UMD_INTERFACE_VERSION_WDDM1_3))
1723 UINT CrossAdapter : 1;
1725#if ((DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_0) || \
1726 (D3D_UMD_INTERFACE_VERSION >= D3D_UMD_INTERFACE_VERSION_WDDM2_0))
1731 UINT TopOfPipeline : 1;
1744 UINT NoSignalMaxValueOnTdr : 1;
1749 UINT NoGPUAccess : 1;
1751#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM3_0)
1754 UINT SignalByKmd : 1;
1767 UINT D3DDDI_SYNCHRONIZATIONOBJECT_FLAGS_RESERVED0 : 1;
1771} D3DDDI_SYNCHRONIZATIONOBJECT_FLAGS;
1773typedef struct _D3DDDI_SYNCHRONIZATIONOBJECTINFO2
1775 D3DDDI_SYNCHRONIZATIONOBJECT_TYPE
Type;
1776 D3DDDI_SYNCHRONIZATIONOBJECT_FLAGS
Flags;
1782 } SynchronizationMutex;
1792 D3DKMT_ALIGN64
UINT64 FenceValue;
1800#if ((DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_0) || \
1801 (D3D_UMD_INTERFACE_VERSION >= D3D_UMD_INTERFACE_VERSION_WDDM2_0))
1804 D3DKMT_ALIGN64
UINT64 InitialFenceValue;
1805 D3DKMT_PTR(
VOID*, FenceValueCPUVirtualAddress);
1806 D3DKMT_ALIGN64 D3DGPU_VIRTUAL_ADDRESS FenceValueGPUVirtualAddress;
1807 UINT EngineAffinity;
1812#if ((DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_2) || \
1813 (D3D_UMD_INTERFACE_VERSION >= D3D_UMD_INTERFACE_VERSION_WDDM2_2))
1816 D3DKMT_HANDLE hAdapter;
1817 D3DDDI_VIDEO_PRESENT_TARGET_ID VidPnTargetId;
1820 D3DKMT_PTR(
VOID*, FenceValueCPUVirtualAddress);
1821 D3DKMT_ALIGN64 D3DGPU_VIRTUAL_ADDRESS FenceValueGPUVirtualAddress;
1822 UINT EngineAffinity;
1824 } PeriodicMonitoredFence;
1834 D3DKMT_HANDLE SharedHandle;
1836} D3DDDI_SYNCHRONIZATIONOBJECTINFO2;
1838#if ((DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_0) || \
1839 (D3D_UMD_INTERFACE_VERSION >= D3D_UMD_INTERFACE_VERSION_WDDM2_0))
1841typedef struct _D3DDDI_WAITFORSYNCHRONIZATIONOBJECTFROMCPU_FLAGS
1853} D3DDDI_WAITFORSYNCHRONIZATIONOBJECTFROMCPU_FLAGS;
1857#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_4)
1859typedef struct _D3DDDI_QUERYREGISTRY_FLAGS
1865 UINT TranslatePath : 1;
1866 UINT MutableValue : 1;
1871} D3DDDI_QUERYREGISTRY_FLAGS;
1873typedef enum _D3DDDI_QUERYREGISTRY_TYPE
1875 D3DDDI_QUERYREGISTRY_SERVICEKEY = 0,
1876 D3DDDI_QUERYREGISTRY_ADAPTERKEY = 1,
1877 D3DDDI_QUERYREGISTRY_DRIVERSTOREPATH = 2,
1878 D3DDDI_QUERYREGISTRY_DRIVERIMAGEPATH = 3,
1879 D3DDDI_QUERYREGISTRY_MAX,
1880} D3DDDI_QUERYREGISTRY_TYPE;
1882typedef enum _D3DDDI_QUERYREGISTRY_STATUS
1884 D3DDDI_QUERYREGISTRY_STATUS_SUCCESS = 0,
1885 D3DDDI_QUERYREGISTRY_STATUS_BUFFER_OVERFLOW = 1,
1886 D3DDDI_QUERYREGISTRY_STATUS_FAIL = 2,
1887 D3DDDI_QUERYREGISTRY_STATUS_MAX,
1888} D3DDDI_QUERYREGISTRY_STATUS;
1894typedef struct _D3DDDI_QUERYREGISTRY_INFO
1897 D3DDDI_QUERYREGISTRY_FLAGS QueryFlags;
1900 ULONG PhysicalAdapterIndex;
1901 ULONG OutputValueSize;
1902 D3DDDI_QUERYREGISTRY_STATUS
Status;
1905 D3DKMT_ALIGN64
UINT64 OutputQword;
1906 WCHAR OutputString[1];
1907 BYTE OutputBinary[1];
1909 } D3DDDI_QUERYREGISTRY_INFO;
1917#define D3DDDI_MAX_BROADCAST_CONTEXT 64
1922#define D3DDDI_ALLOCATIONPRIORITY_MINIMUM 0x28000000
1923#define D3DDDI_ALLOCATIONPRIORITY_LOW 0x50000000
1924#define D3DDDI_ALLOCATIONPRIORITY_NORMAL 0x78000000
1925#define D3DDDI_ALLOCATIONPRIORITY_HIGH 0xa0000000
1926#define D3DDDI_ALLOCATIONPRIORITY_MAXIMUM 0xc8000000
1928#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM1_3)
1933#define D3DKMT_CROSS_ADAPTER_RESOURCE_PITCH_ALIGNMENT 128
1937#define D3DKMT_CROSS_ADAPTER_RESOURCE_HEIGHT_ALIGNMENT 4
unsigned long long UINT64
static INT Execute(LPTSTR Full, LPTSTR First, LPTSTR Rest, PARSED_COMMAND *Cmd)
VOID Copy(PVOID Src, PVOID Dst, ULONG NumBytes)
#define MAKEFOURCC(ch0, ch1, ch2, ch3)
IN PVCB IN VBO IN ULONG OUT PBCB OUT PVOID IN BOOLEAN IN BOOLEAN Zero
_Must_inspect_result_ _In_ PFSRTL_PER_STREAM_CONTEXT Ptr
GLdouble GLdouble GLdouble GLdouble top
_Must_inspect_result_ _In_ USAGE _In_ USHORT _In_ USAGE Usage
static PLARGE_INTEGER Time
unsigned __int3264 UINT_PTR
_In_ ACCESS_MASK _In_opt_ POBJECT_ATTRIBUTES _In_ EVENT_TYPE _In_ BOOLEAN InitialState
_In_ HANDLE _Outptr_result_bytebuffer_ ViewSize PVOID * BaseAddress
_In_ ULONG _In_ ULONG Offset
_Must_inspect_result_ _In_ KTMOBJECT_TYPE QueryType
_In_ HFONT _Out_ PUINT _Out_ PUINT Width
_In_ HFONT _Out_ PUINT Height
static BOOL Write(PBYTE Address, PBYTE Data, SIZE_T Size)
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_PROPERTY_DATA _In_ DEVPROPTYPE _In_ ULONG Size
_Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_ WDF_DEVICE_POWER_STATE PowerState
_Must_inspect_result_ _In_ WDFDMATRANSACTION _In_ PFN_WDF_PROGRAM_DMA _In_ WDF_DMA_DIRECTION _In_ PMDL _In_ PVOID VirtualAddress
_In_ WDFINTERRUPT _In_ WDF_INTERRUPT_POLICY _In_ WDF_INTERRUPT_PRIORITY Priority
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING _In_ ULONG _Out_opt_ PULONG _Out_opt_ PULONG ValueType
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING ValueName
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING _Out_opt_ PUSHORT _Inout_opt_ PUNICODE_STRING Value
_Reserved_ PVOID Reserved
_In_ const BITMAPINFO _In_ UINT _In_opt_ HANDLE hSection
_Must_inspect_result_ _In_ ULONG Flags
_In_opt_ PALLOCATE_FUNCTION _In_opt_ PFREE_FUNCTION _In_ ULONG _In_ SIZE_T _In_ ULONG _In_ USHORT Depth
_Must_inspect_result_ typedef _In_ PHYSICAL_ADDRESS SourceAddress
_Must_inspect_result_ _In_ SIZE_T _In_ PVOID PageAddress