16#pragma region Desktop Family
17#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
20#pragma warning(disable:4201)
21#pragma warning(disable:4200)
22#pragma warning(disable:4214)
32#if defined(__REACTOS__) || ((NTDDI_VERSION >= NTDDI_LONGHORN) || defined(D3DKMDT_SPECIAL_MULTIPLATFORM_TOOL))
38#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WIN8)
52 D3DKMT_PTR_HELPER(pAdapter_Align)
71typedef enum _D3DKMT_CLIENTHINT
73 D3DKMT_CLIENTHINT_UNKNOWN = 0,
74 D3DKMT_CLIENTHINT_OPENGL = 1,
75 D3DKMT_CLIENTHINT_CDD = 2,
76 D3DKMT_CLIENTHINT_OPENCL = 3,
77 D3DKMT_CLIENTHINT_VULKAN = 4,
78 D3DKMT_CLIENTHINT_CUDA = 5,
79 D3DKMT_CLIENTHINT_RESERVED = 6,
80 D3DKMT_CLIENTHINT_DX7 = 7,
81 D3DKMT_CLIENTHINT_DX8 = 8,
82 D3DKMT_CLIENTHINT_DX9 = 9,
83 D3DKMT_CLIENTHINT_DX10 = 10,
84 D3DKMT_CLIENTHINT_DX11 = 11,
85 D3DKMT_CLIENTHINT_DX12 = 12,
86 D3DKMT_CLIENTHINT_9ON12 = 13,
87 D3DKMT_CLIENTHINT_11ON12 = 14,
88 D3DKMT_CLIENTHINT_MFT_ENCODE = 15,
89 D3DKMT_CLIENTHINT_GLON12 = 16,
90 D3DKMT_CLIENTHINT_CLON12 = 17,
91 D3DKMT_CLIENTHINT_DML_TENSORFLOW = 18,
92 D3DKMT_CLIENTHINT_ONEAPI_LEVEL0 = 19,
96typedef struct _D3DKMT_CREATECONTEXT
101 D3DDDI_CREATECONTEXTFLAGS
Flags;
102 D3DKMT_PTR(
VOID*, pPrivateDriverData);
103 UINT PrivateDriverDataSize;
104 D3DKMT_CLIENTHINT ClientHint;
106 D3DKMT_PTR(
VOID*, pCommandBuffer);
107 UINT CommandBufferSize;
109 UINT AllocationListSize;
111 UINT PatchLocationListSize;
113} D3DKMT_CREATECONTEXT;
115typedef struct _D3DKMT_DESTROYCONTEXT
118} D3DKMT_DESTROYCONTEXT;
147typedef struct _D3DKMT_WAITFORSYNCHRONIZATIONOBJECT
151 D3DKMT_HANDLE ObjectHandleArray[D3DDDI_MAX_OBJECT_WAITED_ON];
152} D3DKMT_WAITFORSYNCHRONIZATIONOBJECT;
154typedef struct _D3DKMT_WAITFORSYNCHRONIZATIONOBJECT2
158 D3DKMT_HANDLE ObjectHandleArray[D3DDDI_MAX_OBJECT_WAITED_ON];
162 D3DKMT_ALIGN64
UINT64 FenceValue;
166} D3DKMT_WAITFORSYNCHRONIZATIONOBJECT2;
168typedef struct _D3DKMT_SIGNALSYNCHRONIZATIONOBJECT
174} D3DKMT_SIGNALSYNCHRONIZATIONOBJECT;
176typedef struct _D3DKMT_SIGNALSYNCHRONIZATIONOBJECT2
182 ULONG BroadcastContextCount;
184 D3DKMT_HANDLE BroadcastContext[D3DDDI_MAX_BROADCAST_CONTEXT];
189 D3DKMT_ALIGN64
UINT64 FenceValue;
191#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WIN8)
196} D3DKMT_SIGNALSYNCHRONIZATIONOBJECT2;
198typedef struct _D3DKMT_LOCK
203 UINT PrivateDriverData;
207 D3DDDICB_LOCKFLAGS
Flags;
211typedef struct _D3DKMT_UNLOCK
218typedef enum _D3DKMDT_MODE_PRUNING_REASON
220 D3DKMDT_MPR_UNINITIALIZED = 0,
221 D3DKMDT_MPR_ALLCAPS = 1,
222 D3DKMDT_MPR_DESCRIPTOR_MONITOR_SOURCE_MODE = 2,
223 D3DKMDT_MPR_DESCRIPTOR_MONITOR_FREQUENCY_RANGE = 3,
224 D3DKMDT_MPR_DESCRIPTOR_OVERRIDE_MONITOR_SOURCE_MODE = 4,
225 D3DKMDT_MPR_DESCRIPTOR_OVERRIDE_MONITOR_FREQUENCY_RANGE = 5,
226 D3DKMDT_MPR_DEFAULT_PROFILE_MONITOR_SOURCE_MODE = 6,
227 D3DKMDT_MPR_DRIVER_RECOMMENDED_MONITOR_SOURCE_MODE = 7,
228 D3DKMDT_MPR_MONITOR_FREQUENCY_RANGE_OVERRIDE = 8,
229 D3DKMDT_MPR_CLONE_PATH_PRUNED = 9,
230 D3DKMDT_MPR_MAXVALID = 10
232D3DKMDT_MODE_PRUNING_REASON;
238typedef struct _D3DKMDT_DISPLAYMODE_FLAGS
240#if (DXGKDDI_INTERFACE_VERSION < DXGKDDI_INTERFACE_VERSION_WIN8)
241 BOOLEAN ValidatedAgainstMonitorCaps : 1;
243 D3DKMDT_MODE_PRUNING_REASON ModePruningReason : 4;
246 UINT ValidatedAgainstMonitorCaps : 1;
247 UINT RoundedFakeMode : 1;
249 D3DKMDT_MODE_PRUNING_REASON ModePruningReason : 4;
251 UINT AdvancedScanCapable : 1;
252#if (DXGKDDI_INTERFACE_VERSION < DXGKDDI_INTERFACE_VERSION_WDDM2_0)
255 UINT PreferredTiming : 1;
256 UINT PhysicalModeSupported : 1;
257#if (DXGKDDI_INTERFACE_VERSION < DXGKDDI_INTERFACE_VERSION_WDDM2_9)
260 UINT VirtualRefreshRate : 1;
266D3DKMDT_DISPLAYMODE_FLAGS;
268typedef struct _D3DKMT_DISPLAYMODE
273 UINT IntegerRefreshRate;
274 D3DDDI_RATIONAL RefreshRate;
275 D3DDDI_VIDEO_SIGNAL_SCANLINE_ORDERING ScanLineOrdering;
276 D3DDDI_ROTATION DisplayOrientation;
277 UINT DisplayFixedOutput;
278 D3DKMDT_DISPLAYMODE_FLAGS
Flags;
281typedef struct _D3DKMT_GETDISPLAYMODELIST
285 D3DKMT_PTR(D3DKMT_DISPLAYMODE*, pModeList);
287} D3DKMT_GETDISPLAYMODELIST;
289typedef struct _D3DKMT_DISPLAYMODELIST
293 D3DKMT_DISPLAYMODE pModeList[0];
294} D3DKMT_DISPLAYMODELIST;
296typedef struct _D3DKMT_SETDISPLAYMODE_FLAGS
301D3DKMT_SETDISPLAYMODE_FLAGS;
303typedef struct _D3DKMT_SETDISPLAYMODE
307 D3DDDI_VIDEO_SIGNAL_SCANLINE_ORDERING ScanLineOrdering;
308 D3DDDI_ROTATION DisplayOrientation;
309 UINT PrivateDriverFormatAttribute;
310 D3DKMT_SETDISPLAYMODE_FLAGS
Flags;
311} D3DKMT_SETDISPLAYMODE;
314typedef struct _D3DKMT_MULTISAMPLEMETHOD
317 UINT NumQualityLevels;
319} D3DKMT_MULTISAMPLEMETHOD;
321typedef struct _D3DKMT_GETMULTISAMPLEMETHODLIST
328 D3DKMT_PTR(D3DKMT_MULTISAMPLEMETHOD*, pMethodList);
330} D3DKMT_GETMULTISAMPLEMETHODLIST;
332typedef struct _D3DKMT_PRESENTFLAGS
341 UINT FlipDoNotFlip : 1;
342 UINT FlipDoNotWait : 1;
343 UINT FlipRestart : 1;
344 UINT DstRectValid : 1;
345 UINT SrcRectValid : 1;
346 UINT RestrictVidPnSource : 1;
347 UINT SrcColorKey : 1;
348 UINT DstColorKey : 1;
349 UINT LinearToSrgb : 1;
350 UINT PresentCountValid : 1;
352 UINT PresentToBitmap : 1;
353 UINT RedirectedFlip : 1;
354 UINT RedirectedBlt : 1;
355#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WIN8)
357 UINT FlipStereoTemporaryMono : 1;
358 UINT FlipStereoPreferRight : 1;
359 UINT BltStereoUseRight : 1;
360 UINT PresentHistoryTokenOnly : 1;
361 UINT PresentRegionsValid : 1;
363 UINT ProtectedContentBlankedOut : 1;
364 UINT RemoteSession : 1;
365#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM1_3)
366 UINT CrossAdapter : 1;
367 UINT DurationValid : 1;
368 UINT PresentIndirect : 1;
380} D3DKMT_PRESENTFLAGS;
382typedef enum _D3DKMT_PRESENT_MODEL
384 D3DKMT_PM_UNINITIALIZED = 0,
385 D3DKMT_PM_REDIRECTED_GDI = 1,
386 D3DKMT_PM_REDIRECTED_FLIP = 2,
387 D3DKMT_PM_REDIRECTED_BLT = 3,
388 D3DKMT_PM_REDIRECTED_VISTABLT = 4,
389 D3DKMT_PM_SCREENCAPTUREFENCE = 5,
390 D3DKMT_PM_REDIRECTED_GDI_SYSMEM = 6,
391 D3DKMT_PM_REDIRECTED_COMPOSITION = 7,
392#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_1)
393 D3DKMT_PM_SURFACECOMPLETE = 8,
395 D3DKMT_PM_FLIPMANAGER = 9,
396} D3DKMT_PRESENT_MODEL;
398typedef enum _D3DKMT_FLIPMODEL_INDEPENDENT_FLIP_STAGE
400 D3DKMT_FLIPMODEL_INDEPENDENT_FLIP_STAGE_FLIP_SUBMITTED = 0,
401 D3DKMT_FLIPMODEL_INDEPENDENT_FLIP_STAGE_FLIP_COMPLETE = 1
402} D3DKMT_FLIPMODEL_INDEPENDENT_FLIP_STAGE;
404typedef struct _D3DKMT_FLIPMODEL_PRESENTHISTORYTOKENFLAGS
411 UINT RestrictedContent : 1;
413#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WIN8)
414 UINT StereoPreferRight : 1;
415 UINT TemporaryMono : 1;
416 UINT FlipRestart : 1;
417 UINT HDRMetaDataChanged : 1;
419 UINT SignalLimitOnTokenCompletion : 1;
421 UINT IndependentFlip : 1;
422 D3DKMT_FLIPMODEL_INDEPENDENT_FLIP_STAGE IndependentFlipStage : 2;
423 UINT IndependentFlipReleaseCount : 2;
424 UINT IndependentFlipForceNotifyDwm : 1;
425 UINT UseCustomDuration : 1;
426 UINT IndependentFlipRequestDwmConfirm:1;
427 UINT IndependentFlipCandidate : 1;
428 UINT IndependentFlipCheckNeeded : 1;
429 UINT IndependentFlipTrueImmediate : 1;
430 UINT IndependentFlipRequestDwmExit : 1;
431 UINT CompSurfaceNotifiedEarly : 1;
432 UINT IndependentFlipDoNotFlip : 1;
433 UINT RequirePairedToken : 1;
434 UINT VariableRefreshOverrideEligible :1;
443} D3DKMT_FLIPMODEL_PRESENTHISTORYTOKENFLAGS;
445#define D3DKMT_MAX_PRESENT_HISTORY_RECTS 16
447typedef struct _D3DKMT_DIRTYREGIONS
450 RECT Rects[D3DKMT_MAX_PRESENT_HISTORY_RECTS];
451} D3DKMT_DIRTYREGIONS;
453typedef struct _D3DKMT_COMPOSITION_PRESENTHISTORYTOKEN
455 D3DKMT_ALIGN64
ULONG64 hPrivateData;
456} D3DKMT_COMPOSITION_PRESENTHISTORYTOKEN;
458typedef struct _D3DKMT_FLIPMANAGER_PRESENTHISTORYTOKEN
460 D3DKMT_ALIGN64
ULONG64 hPrivateData;
468 UINT hPrivateDataIsPointer : 1;
473} D3DKMT_FLIPMANAGER_PRESENTHISTORYTOKEN;
475typedef enum _D3DKMT_AUXILIARYPRESENTINFO_TYPE
477 D3DKMT_AUXILIARYPRESENTINFO_TYPE_FLIPMANAGER = 0
478} D3DKMT_AUXILIARYPRESENTINFO_TYPE;
480typedef struct _D3DKMT_AUXILIARYPRESENTINFO
483 D3DKMT_AUXILIARYPRESENTINFO_TYPE
type;
484} D3DKMT_AUXILIARYPRESENTINFO;
486typedef struct _D3DKMT_FLIPMANAGER_AUXILIARYPRESENTINFO
489 D3DKMT_AUXILIARYPRESENTINFO auxiliaryPresentInfo;
492 UINT flipManagerTracingId;
496 BOOL customDurationChanged;
499 LUID FlipAdapterLuid;
503 D3DKMT_FLIPMODEL_INDEPENDENT_FLIP_STAGE independentFlipStage;
506 D3DKMT_ALIGN64
ULONGLONG FlipCompletedQpc;
509 UINT HwPresentDurationQpc;
513} D3DKMT_FLIPMANAGER_AUXILIARYPRESENTINFO;
515typedef struct _D3DKMT_GDIMODEL_PRESENTHISTORYTOKEN
519#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WIN8)
523 D3DKMT_DIRTYREGIONS DirtyRegions;
524} D3DKMT_GDIMODEL_PRESENTHISTORYTOKEN;
526typedef struct _D3DKMT_GDIMODEL_SYSMEM_PRESENTHISTORYTOKEN
530 D3DKMT_ALIGN64
UINT64 uiCookie;
531} D3DKMT_GDIMODEL_SYSMEM_PRESENTHISTORYTOKEN;
533typedef ULONGLONG D3DKMT_VISTABLTMODEL_PRESENTHISTORYTOKEN;
535typedef struct _D3DKMT_FENCE_PRESENTHISTORYTOKEN
538} D3DKMT_FENCE_PRESENTHISTORYTOKEN;
540typedef struct _D3DKMT_BLTMODEL_PRESENTHISTORYTOKEN
544 D3DKMT_ALIGN64
ULONG64 EventId;
545 D3DKMT_DIRTYREGIONS DirtyRegions;
546} D3DKMT_BLTMODEL_PRESENTHISTORYTOKEN;
548#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WIN8)
549#define D3DKMT_MAX_PRESENT_HISTORY_SCATTERBLTS 12
551typedef struct _D3DKMT_SCATTERBLT
553 D3DKMT_ALIGN64
ULONG64 hLogicalSurfaceDestination;
554 D3DKMT_ALIGN64
LONG64 hDestinationCompSurfDWM;
555 D3DKMT_ALIGN64
UINT64 DestinationCompositionBindingId;
560typedef struct _D3DKMT_SCATTERBLTS
563 D3DKMT_SCATTERBLT Blts[D3DKMT_MAX_PRESENT_HISTORY_SCATTERBLTS];
567typedef struct _D3DKMT_FLIPMODEL_PRESENTHISTORYTOKEN
569 D3DKMT_ALIGN64
UINT64 FenceValue;
571 D3DKMT_ALIGN64 D3DKMT_UINT_PTR dxgContext;
574 D3DKMT_ALIGN64
UINT64 PresentLimitSemaphoreId;
575 D3DDDI_FLIPINTERVAL_TYPE FlipInterval;
576 D3DKMT_FLIPMODEL_PRESENTHISTORYTOKENFLAGS
Flags;
577#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WIN8)
578 D3DKMT_ALIGN64
LONG64 hCompSurf;
580 D3DKMT_ALIGN64
UINT64 confirmationCookie;
581 D3DKMT_ALIGN64
UINT64 CompositionSyncKey;
582 UINT RemainingTokens;
586 FLOAT RevealColor[4];
587 D3DDDI_ROTATION Rotation;
590 D3DKMT_SCATTERBLTS ScatterBlts;
594 D3DDDI_HDR_METADATA_TYPE HDRMetaDataType;
597 D3DDDI_HDR_METADATA_HDR10 HDRMetaDataHDR10;
598 D3DDDI_HDR_METADATA_HDR10PLUS HDRMetaDataHDR10Plus;
610 D3DDDI_FLIPINTERVAL_TYPE CustomDurationFlipInterval;
613#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_0)
614 D3DDDI_COLOR_SPACE_TYPE ColorSpace;
616 D3DKMT_DIRTYREGIONS DirtyRegions;
617} D3DKMT_FLIPMODEL_PRESENTHISTORYTOKEN;
620#define FLIPEX_TIMEOUT_USER (2000)
621#define FLIPEX_TIMEOUT_KERNEL (FLIPEX_TIMEOUT_USER*10000)
623#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_1)
624typedef struct _D3DKMT_SURFACECOMPLETE_PRESENTHISTORYTOKEN
627} D3DKMT_SURFACECOMPLETE_PRESENTHISTORYTOKEN;
630typedef struct _D3DKMT_PRESENTHISTORYTOKEN
632 D3DKMT_PRESENT_MODEL Model;
639#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WIN8)
641 UINT64 CompositionBindingId;
646 D3DKMT_FLIPMODEL_PRESENTHISTORYTOKEN Flip;
647 D3DKMT_BLTMODEL_PRESENTHISTORYTOKEN Blt;
648 D3DKMT_VISTABLTMODEL_PRESENTHISTORYTOKEN VistaBlt;
649 D3DKMT_GDIMODEL_PRESENTHISTORYTOKEN Gdi;
650 D3DKMT_FENCE_PRESENTHISTORYTOKEN Fence;
651 D3DKMT_GDIMODEL_SYSMEM_PRESENTHISTORYTOKEN GdiSysMem;
652 D3DKMT_COMPOSITION_PRESENTHISTORYTOKEN Composition;
653 D3DKMT_FLIPMANAGER_PRESENTHISTORYTOKEN FlipManager;
654#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_1)
655 D3DKMT_SURFACECOMPLETE_PRESENTHISTORYTOKEN SurfaceComplete;
659} D3DKMT_PRESENTHISTORYTOKEN;
661#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WIN8)
662typedef struct _D3DKMT_PRESENT_RGNS
667 D3DKMT_PTR(
_Field_size_( MoveRectCount )
const D3DKMT_MOVE_RECT*, pMoveRects);
671typedef struct _D3DKMT_PRESENT
678 D3DKMT_PTR(
HWND, hWindow);
688 D3DDDI_FLIPINTERVAL_TYPE FlipInterval;
689 D3DKMT_PRESENTFLAGS
Flags;
690 ULONG BroadcastContextCount;
692 D3DKMT_HANDLE BroadcastContext[D3DDDI_MAX_BROADCAST_CONTEXT];
694 HANDLE PresentLimitSemaphore;
695 D3DKMT_PRESENTHISTORYTOKEN PresentHistoryToken;
696#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WIN8)
697 D3DKMT_PRESENT_RGNS* pPresentRegions;
699#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM1_3)
707#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_0)
712 UINT PrivateDriverDataSize;
714 PVOID, pPrivateDriverData);
715 BOOLEAN bOptimizeForComposition;
720#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_3)
721typedef struct _D3DKMT_PRESENT_REDIRECTEDS_FLAGS
731}D3DKMT_PRESENT_REDIRECTED_FLAGS;
733typedef struct _D3DKMT_PRESENT_REDIRECTED
737 D3DKMT_ALIGN64
ULONGLONG WaitedFenceValue;
738 D3DKMT_PRESENTHISTORYTOKEN PresentHistoryToken;
739 D3DKMT_PRESENT_REDIRECTED_FLAGS
Flags;
741 UINT PrivateDriverDataSize;
743 PVOID, pPrivateDriverData);
744}D3DKMT_PRESENT_REDIRECTED;
747#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM3_0)
748typedef struct _D3DKMT_CANCEL_PRESENTS_FLAGS
755 UINT NewVSyncInterruptState : 1;
757 } ReprogramInterrupt;
761}D3DKMT_CANCEL_PRESENTS_FLAGS;
764typedef enum D3DKMT_CANCEL_PRESENTS_OPERATION
766 D3DKMT_CANCEL_PRESENTS_OPERATION_CANCEL_FROM = 0,
767 D3DKMT_CANCEL_PRESENTS_OPERATION_REPROGRAM_INTERRUPT = 1
768} D3DKMT_CANCEL_PRESENTS_OPERATION;
770typedef struct _D3DKMT_CANCEL_PRESENTS
774 D3DKMT_CANCEL_PRESENTS_FLAGS
Flags;
775 D3DKMT_CANCEL_PRESENTS_OPERATION
Operation;
776 D3DKMT_ALIGN64
UINT64 CancelFromPresentId;
777 LUID CompSurfaceLuid;
778 D3DKMT_ALIGN64
UINT64 BindId;
779}D3DKMT_CANCEL_PRESENTS;
782#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_4)
784typedef struct _D3DKMT_SUBMITPRESENTBLTTOHWQUEUE
787 D3DKMT_ALIGN64
UINT64 HwQueueProgressFenceId;
788 D3DKMT_PRESENT PrivatePresentData;
789} D3DKMT_SUBMITPRESENTBLTTOHWQUEUE;
793#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_5)
795typedef struct _D3DKMT_SUBMITPRESENTTOHWQUEUE
797 D3DKMT_PTR(
_Field_size_(PrivatePresentData.BroadcastContextCount + 1)
799 D3DKMT_PRESENT PrivatePresentData;
800} D3DKMT_SUBMITPRESENTTOHWQUEUE;
804#define D3DKMT_MAX_MULTIPLANE_OVERLAY_PLANES 8
805#define D3DKMT_MAX_MULTIPLANE_OVERLAY_ALLOCATIONS_PER_PLANE 256
807typedef enum D3DKMT_MULTIPLANE_OVERLAY_FLAGS
809 D3DKMT_MULTIPLANE_OVERLAY_FLAG_VERTICAL_FLIP = 0x1,
810 D3DKMT_MULTIPLANE_OVERLAY_FLAG_HORIZONTAL_FLIP = 0x2,
811#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM3_0)
812 D3DKMT_MULTIPLANE_OVERLAY_FLAG_STATIC_CHECK = 0x4,
814} D3DKMT_MULTIPLANE_OVERLAY_FLAGS;
816typedef enum D3DKMT_MULTIPLANE_OVERLAY_BLEND
818 D3DKMT_MULTIPLANE_OVERLAY_BLEND_OPAQUE = 0x0,
819 D3DKMT_MULTIPLANE_OVERLAY_BLEND_ALPHABLEND = 0x1,
820} D3DKMT_MULTIPLANE_OVERLAY_BLEND;
822typedef enum D3DKMT_MULTIPLANE_OVERLAY_VIDEO_FRAME_FORMAT
824 D3DKMT_MULIIPLANE_OVERLAY_VIDEO_FRAME_FORMAT_PROGRESSIVE = 0,
825 D3DKMT_MULTIPLANE_OVERLAY_VIDEO_FRAME_FORMAT_INTERLACED_TOP_FIELD_FIRST = 1,
826 D3DKMT_MULTIPLANE_OVERLAY_VIDEO_FRAME_FORMAT_INTERLACED_BOTTOM_FIELD_FIRST = 2
827} D3DKMT_MULTIPLANE_OVERLAY_VIDEO_FRAME_FORMAT;
829typedef enum D3DKMT_MULTIPLANE_OVERLAY_YCbCr_FLAGS
831 D3DKMT_MULTIPLANE_OVERLAY_YCbCr_FLAG_NOMINAL_RANGE = 0x1,
832 D3DKMT_MULTIPLANE_OVERLAY_YCbCr_FLAG_BT709 = 0x2,
833 D3DKMT_MULTIPLANE_OVERLAY_YCbCr_FLAG_xvYCC = 0x4,
834} D3DKMT_MULTIPLANE_OVERLAY_YCbCr_FLAGS;
836typedef enum D3DKMT_MULTIPLANE_OVERLAY_STEREO_FORMAT
838 DXGKMT_MULTIPLANE_OVERLAY_STEREO_FORMAT_MONO = 0,
839 D3DKMT_MULTIPLANE_OVERLAY_STEREO_FORMAT_HORIZONTAL = 1,
840 D3DKMT_MULTIPLANE_OVERLAY_STEREO_FORMAT_VERTICAL = 2,
841 DXGKMT_MULTIPLANE_OVERLAY_STEREO_FORMAT_SEPARATE = 3,
842 DXGKMT_MULTIPLANE_OVERLAY_STEREO_FORMAT_MONO_OFFSET = 4,
843 DXGKMT_MULTIPLANE_OVERLAY_STEREO_FORMAT_ROW_INTERLEAVED = 5,
844 DXGKMT_MULTIPLANE_OVERLAY_STEREO_FORMAT_COLUMN_INTERLEAVED = 6,
845 DXGKMT_MULTIPLANE_OVERLAY_STEREO_FORMAT_CHECKERBOARD = 7
846} D3DKMT_MULTIPLANE_OVERLAY_STEREO_FORMAT;
848typedef enum _DXGKMT_MULTIPLANE_OVERLAY_STEREO_FLIP_MODE
850 DXGKMT_MULTIPLANE_OVERLAY_STEREO_FLIP_NONE = 0,
851 DXGKMT_MULTIPLANE_OVERLAY_STEREO_FLIP_FRAME0 = 1,
852 DXGKMT_MULTIPLANE_OVERLAY_STEREO_FLIP_FRAME1 = 2,
853} DXGKMT_MULTIPLANE_OVERLAY_STEREO_FLIP_MODE;
855typedef enum _DXGKMT_MULTIPLANE_OVERLAY_STRETCH_QUALITY
857 DXGKMT_MULTIPLANE_OVERLAY_STRETCH_QUALITY_BILINEAR = 0x1,
858 DXGKMT_MULTIPLANE_OVERLAY_STRETCH_QUALITY_HIGH = 0x2,
859} DXGKMT_MULTIPLANE_OVERLAY_STRETCH_QUALITY;
861typedef struct D3DKMT_MULTIPLANE_OVERLAY_ATTRIBUTES
866#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM1_3)
869 D3DDDI_ROTATION Rotation;
870 D3DKMT_MULTIPLANE_OVERLAY_BLEND Blend;
871#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM1_3)
873 D3DKMT_PTR(
RECT*, pDirtyRects);
876 D3DKMT_PTR(
void*, pFilters);
878 D3DKMT_MULTIPLANE_OVERLAY_VIDEO_FRAME_FORMAT VideoFrameFormat;
880 D3DKMT_MULTIPLANE_OVERLAY_STEREO_FORMAT StereoFormat;
881 BOOL StereoLeftViewFrame0;
882 BOOL StereoBaseViewFrame0;
883 DXGKMT_MULTIPLANE_OVERLAY_STEREO_FLIP_MODE StereoFlipMode;
884#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM1_3)
885 DXGKMT_MULTIPLANE_OVERLAY_STRETCH_QUALITY StretchQuality;
887} D3DKMT_MULTIPLANE_OVERLAY_ATTRIBUTES;
889#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM_1_3)
890typedef struct D3DKMT_CHECK_MULTIPLANE_OVERLAY_PLANE
893 LUID CompSurfaceLuid;
895 D3DKMT_MULTIPLANE_OVERLAY_ATTRIBUTES PlaneAttributes;
896} D3DKMT_CHECK_MULTIPLANE_OVERLAY_PLANE;
898typedef struct D3DKMT_CHECK_MULTIPLANE_OVERLAY_SUPPORT_RETURN_INFO
904 UINT FailingPlane : 4;
910} D3DKMT_CHECK_MULTIPLANE_OVERLAY_SUPPORT_RETURN_INFO;
912typedef struct _D3DKMT_CHECKMULTIPLANEOVERLAYSUPPORT
916 D3DKMT_PTR(D3DKMT_CHECK_MULTIPLANE_OVERLAY_PLANE*, pOverlayPlanes);
918 D3DKMT_CHECK_MULTIPLANE_OVERLAY_SUPPORT_RETURN_INFO ReturnInfo;
919} D3DKMT_CHECKMULTIPLANEOVERLAYSUPPORT;
922#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM_2_0)
923typedef struct _D3DKMT_MULTIPLANE_OVERLAY_ATTRIBUTES2
933 D3DDDI_ROTATION Rotation;
934 D3DKMT_MULTIPLANE_OVERLAY_BLEND Blend;
936 D3DKMT_PTR(
RECT*, pDirtyRects);
937 D3DKMT_MULTIPLANE_OVERLAY_VIDEO_FRAME_FORMAT VideoFrameFormat;
938 D3DDDI_COLOR_SPACE_TYPE ColorSpace;
939 D3DKMT_MULTIPLANE_OVERLAY_STEREO_FORMAT StereoFormat;
940 BOOL StereoLeftViewFrame0;
941 BOOL StereoBaseViewFrame0;
942 DXGKMT_MULTIPLANE_OVERLAY_STEREO_FLIP_MODE StereoFlipMode;
943 DXGKMT_MULTIPLANE_OVERLAY_STRETCH_QUALITY StretchQuality;
945} D3DKMT_MULTIPLANE_OVERLAY_ATTRIBUTES2;
947typedef struct _D3DKMT_CHECK_MULTIPLANE_OVERLAY_PLANE2
951 LUID CompSurfaceLuid;
953 D3DKMT_MULTIPLANE_OVERLAY_ATTRIBUTES2 PlaneAttributes;
954} D3DKMT_CHECK_MULTIPLANE_OVERLAY_PLANE2;
956typedef struct _D3DKMT_CHECKMULTIPLANEOVERLAYSUPPORT2
961 D3DKMT_PTR(D3DKMT_CHECK_MULTIPLANE_OVERLAY_PLANE2*, pOverlayPlanes);
963 D3DKMT_CHECK_MULTIPLANE_OVERLAY_SUPPORT_RETURN_INFO ReturnInfo;
964} D3DKMT_CHECKMULTIPLANEOVERLAYSUPPORT2;
966typedef struct _D3DKMT_MULTIPLANE_OVERLAY2
971 D3DKMT_MULTIPLANE_OVERLAY_ATTRIBUTES2 PlaneAttributes;
972} D3DKMT_MULTIPLANE_OVERLAY2;
974typedef struct _D3DKMT_PRESENT_MULTIPLANE_OVERLAY2
982 ULONG BroadcastContextCount;
984 D3DKMT_HANDLE BroadcastContext[D3DDDI_MAX_BROADCAST_CONTEXT];
989 D3DDDI_FLIPINTERVAL_TYPE FlipInterval;
990 D3DKMT_PRESENTFLAGS
Flags;
992 UINT PresentPlaneCount;
993 D3DKMT_PTR(D3DKMT_MULTIPLANE_OVERLAY2*, pPresentPlanes);
995} D3DKMT_PRESENT_MULTIPLANE_OVERLAY2;
998#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_1)
999typedef struct _D3DKMT_MULTIPLANE_OVERLAY_ATTRIBUTES3
1009 D3DDDI_ROTATION Rotation;
1010 D3DKMT_MULTIPLANE_OVERLAY_BLEND Blend;
1011 UINT DirtyRectCount;
1013 D3DDDI_COLOR_SPACE_TYPE ColorSpace;
1014 DXGKMT_MULTIPLANE_OVERLAY_STRETCH_QUALITY StretchQuality;
1015#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_3)
1018} D3DKMT_MULTIPLANE_OVERLAY_ATTRIBUTES3;
1020typedef struct _D3DKMT_CHECK_MULTIPLANE_OVERLAY_PLANE3
1024 LUID CompSurfaceLuid;
1026 D3DKMT_PTR(D3DKMT_MULTIPLANE_OVERLAY_ATTRIBUTES3*, pPlaneAttributes);
1027} D3DKMT_CHECK_MULTIPLANE_OVERLAY_PLANE3;
1029typedef struct _D3DKMT_MULTIPLANE_OVERLAY_POST_COMPOSITION_FLAGS
1035 UINT VerticalFlip : 1;
1036 UINT HorizontalFlip : 1;
1041} D3DKMT_MULTIPLANE_OVERLAY_POST_COMPOSITION_FLAGS;
1043typedef struct _D3DKMT_MULTIPLANE_OVERLAY_POST_COMPOSITION
1045 D3DKMT_MULTIPLANE_OVERLAY_POST_COMPOSITION_FLAGS
Flags;
1048 D3DDDI_ROTATION Rotation;
1049} D3DKMT_MULTIPLANE_OVERLAY_POST_COMPOSITION;
1051typedef struct _D3DKMT_MULTIPLANE_OVERLAY_POST_COMPOSITION_WITH_SOURCE
1054 D3DKMT_MULTIPLANE_OVERLAY_POST_COMPOSITION PostComposition;
1055} D3DKMT_MULTIPLANE_OVERLAY_POST_COMPOSITION_WITH_SOURCE;
1057typedef struct _D3DKMT_CHECKMULTIPLANEOVERLAYSUPPORT3
1064 D3DKMT_CHECK_MULTIPLANE_OVERLAY_PLANE3** ppOverlayPlanes;
1065 UINT PostCompositionCount;
1067 D3DKMT_MULTIPLANE_OVERLAY_POST_COMPOSITION_WITH_SOURCE** ppPostComposition;
1069 D3DKMT_CHECK_MULTIPLANE_OVERLAY_SUPPORT_RETURN_INFO ReturnInfo;
1070} D3DKMT_CHECKMULTIPLANEOVERLAYSUPPORT3;
1072typedef struct _D3DKMT_PLANE_SPECIFIC_INPUT_FLAGS
1083} D3DKMT_PLANE_SPECIFIC_INPUT_FLAGS;
1085typedef struct _D3DKMT_PLANE_SPECIFIC_OUTPUT_FLAGS
1091 UINT FlipConvertedToImmediate : 1;
1096} D3DKMT_PLANE_SPECIFIC_OUTPUT_FLAGS;
1098typedef struct _D3DKMT_MULTIPLANE_OVERLAY3
1101 D3DKMT_PLANE_SPECIFIC_INPUT_FLAGS InputFlags;
1102 D3DDDI_FLIPINTERVAL_TYPE FlipInterval;
1103 UINT MaxImmediateFlipLine;
1104 UINT AllocationCount;
1107 UINT DriverPrivateDataSize;
1109 VOID*, pDriverPrivateData);
1110 D3DKMT_PTR(
const D3DKMT_MULTIPLANE_OVERLAY_ATTRIBUTES3*, pPlaneAttributes);
1113 D3DKMT_ALIGN64
UINT64 FlipToFenceValue;
1114 D3DKMT_ALIGN64
UINT64 FlipAwayFenceValue;
1115} D3DKMT_MULTIPLANE_OVERLAY3;
1117typedef struct _D3DKMT_PRESENT_MULTIPLANE_OVERLAY_FLAGS
1123 UINT FlipStereo : 1;
1124 UINT FlipStereoTemporaryMono : 1;
1125 UINT FlipStereoPreferRight : 1;
1126 UINT FlipDoNotWait : 1;
1127 UINT FlipDoNotFlip : 1;
1128 UINT FlipRestart : 1;
1129 UINT DurationValid : 1;
1130 UINT HDRMetaDataValid : 1;
1132 UINT TrueImmediate : 1;
1137} D3DKMT_PRESENT_MULTIPLANE_OVERLAY_FLAGS;
1139typedef struct _D3DKMT_PRESENT_MULTIPLANE_OVERLAY3
1148 D3DKMT_PRESENT_MULTIPLANE_OVERLAY_FLAGS
Flags;
1150 UINT PresentPlaneCount;
1153 D3DKMT_MULTIPLANE_OVERLAY3** ppPresentPlanes;
1154 D3DKMT_PTR(D3DKMT_MULTIPLANE_OVERLAY_POST_COMPOSITION*, pPostComposition);
1156 D3DDDI_HDR_METADATA_TYPE HDRMetaDataType;
1157 UINT HDRMetaDataSize;
1159 const VOID*, pHDRMetaData);
1160 UINT BoostRefreshRateMultiplier;
1161} D3DKMT_PRESENT_MULTIPLANE_OVERLAY3;
1164#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_2)
1165typedef struct _D3DKMT_MULTIPLANE_OVERLAY_CAPS
1172 UINT RotationWithoutIndependentFlip : 1;
1173 UINT VerticalFlip : 1;
1174 UINT HorizontalFlip : 1;
1175 UINT StretchRGB : 1;
1176 UINT StretchYUV : 1;
1177 UINT BilinearFilter : 1;
1178 UINT HighFilter : 1;
1181 UINT Plane0ForVirtualModeOnly : 1;
1182 UINT Version3DDISupport : 1;
1187} D3DKMT_MULTIPLANE_OVERLAY_CAPS;
1189typedef struct _D3DKMT_GET_MULTIPLANE_OVERLAY_CAPS
1196 D3DKMT_MULTIPLANE_OVERLAY_CAPS OverlayCaps;
1197 float MaxStretchFactor;
1198 float MaxShrinkFactor;
1199} D3DKMT_GET_MULTIPLANE_OVERLAY_CAPS;
1201typedef struct _D3DKMT_GET_POST_COMPOSITION_CAPS
1205 float MaxStretchFactor;
1206 float MaxShrinkFactor;
1207} D3DKMT_GET_POST_COMPOSITION_CAPS;
1209typedef struct _D3DKMT_MULTIPLANEOVERLAY_STRETCH_SUPPORT
1214} D3DKMT_MULTIPLANEOVERLAY_STRETCH_SUPPORT;
1217typedef struct D3DKMT_MULTIPLANE_OVERLAY
1222 D3DKMT_MULTIPLANE_OVERLAY_ATTRIBUTES PlaneAttributes;
1223} D3DKMT_MULTIPLANE_OVERLAY;
1225typedef struct D3DKMT_PRESENT_MULTIPLANE_OVERLAY
1232 ULONG BroadcastContextCount;
1234 D3DKMT_HANDLE BroadcastContext[D3DDDI_MAX_BROADCAST_CONTEXT];
1239 D3DDDI_FLIPINTERVAL_TYPE FlipInterval;
1240 D3DKMT_PRESENTFLAGS
Flags;
1242 UINT PresentPlaneCount;
1243 D3DKMT_MULTIPLANE_OVERLAY* pPresentPlanes;
1245} D3DKMT_PRESENT_MULTIPLANE_OVERLAY;
1247typedef struct _D3DKMT_RENDERFLAGS
1249 UINT ResizeCommandBuffer : 1;
1250 UINT ResizeAllocationList : 1;
1251 UINT ResizePatchLocationList : 1;
1252 UINT NullRendering : 1;
1253 UINT PresentRedirected : 1;
1255 UINT RenderKmReadback : 1;
1257} D3DKMT_RENDERFLAGS;
1259#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WIN8)
1260typedef struct _D3DKMT_OUTPUTDUPLPRESENTFLAGS
1266 UINT ProtectedContentBlankedOut : 1;
1267 UINT RemoteSession : 1;
1268 UINT FullScreenPresent : 1;
1269 UINT PresentIndirect : 1;
1274}D3DKMT_OUTPUTDUPLPRESENTFLAGS;
1276typedef struct _D3DKMT_OUTPUTDUPLPRESENT
1281 ULONG BroadcastContextCount;
1282 D3DKMT_HANDLE BroadcastContext[D3DDDI_MAX_BROADCAST_CONTEXT];
1283 D3DKMT_PRESENT_RGNS PresentRegions;
1284 D3DKMT_OUTPUTDUPLPRESENTFLAGS
Flags;
1286} D3DKMT_OUTPUTDUPLPRESENT;
1289#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_6)
1291typedef struct _D3DKMT_OUTPUTDUPLPRESENTTOHWQUEUE
1295 ULONG BroadcastHwQueueCount;
1298 D3DKMT_PRESENT_RGNS PresentRegions;
1299 D3DKMT_OUTPUTDUPLPRESENTFLAGS
Flags;
1301} D3DKMT_OUTPUTDUPLPRESENTTOHWQUEUE;
1305typedef struct _D3DKMT_RENDER
1314 UINT AllocationCount;
1315 UINT PatchLocationCount;
1316 D3DKMT_PTR(
VOID*, pNewCommandBuffer);
1318 UINT NewCommandBufferSize;
1322 UINT NewAllocationListSize;
1325 UINT NewPatchLocationListSize;
1327 D3DKMT_RENDERFLAGS
Flags;
1328 D3DKMT_ALIGN64
ULONGLONG PresentHistoryToken;
1329 ULONG BroadcastContextCount;
1331 D3DKMT_HANDLE BroadcastContext[D3DDDI_MAX_BROADCAST_CONTEXT];
1333 ULONG QueuedBufferCount;
1335 D3DKMT_PTR(
VOID*, pPrivateDriverData);
1336 UINT PrivateDriverDataSize;
1343 D3DKMT_STANDARDALLOCATIONTYPE_INTERNALBACKINGSTORE = 2,
1344 D3DKMT_STANDARDALLOCATIONTYPE_MAX,
1349 D3DKMT_ALIGN64 D3DKMT_SIZE_T
Size;
1386#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WIN8)
1392#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM1_3)
1398#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_3)
1401#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_6)
1403#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_7)
1405 UINT NoKmdAccess : 1;
1406#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM3_0)
1407 UINT SharedDisplayable : 1;
1446 D3DKMT_PTR_HELPER( AlignUnionTo64_1)
1453#if ((DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WIN7) || \
1454 (D3D_UMD_INTERFACE_VERSION >= D3D_UMD_INTERFACE_VERSION_WIN7))
1457 D3DKMT_PTR_HELPER( AlignUnionTo64_2)
1470#if ((DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WIN7) || \
1471 (D3D_UMD_INTERFACE_VERSION >= D3D_UMD_INTERFACE_VERSION_WIN7))
1474 D3DKMT_PTR_HELPER(AlignUnionTo64)
1485#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WIN8)
1514#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_0)
1547typedef struct _D3DKMT_OPENNTHANDLEFROMNAME
1549 DWORD dwDesiredAccess;
1551 D3DKMT_PTR(
HANDLE, hNtHandle);
1552} D3DKMT_OPENNTHANDLEFROMNAME;
1554#define SHARED_ALLOCATION_WRITE 0x1
1555#define SHARED_ALLOCATION_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | SHARED_ALLOCATION_WRITE)
1589#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_0)
1602typedef struct _D3DKMT_SETALLOCATIONPRIORITY
1607 UINT AllocationCount;
1609} D3DKMT_SETALLOCATIONPRIORITY;
1611typedef enum _D3DKMT_ALLOCATIONRESIDENCYSTATUS
1613 D3DKMT_ALLOCATIONRESIDENCYSTATUS_RESIDENTINGPUMEMORY=1,
1614 D3DKMT_ALLOCATIONRESIDENCYSTATUS_RESIDENTINSHAREDMEMORY=2,
1615 D3DKMT_ALLOCATIONRESIDENCYSTATUS_NOTRESIDENT=3,
1616} D3DKMT_ALLOCATIONRESIDENCYSTATUS;
1618typedef struct _D3DKMT_QUERYALLOCATIONRESIDENCY
1623 UINT AllocationCount;
1624 D3DKMT_PTR(D3DKMT_ALLOCATIONRESIDENCYSTATUS*, pResidencyStatus);
1625} D3DKMT_QUERYALLOCATIONRESIDENCY;
1627typedef struct _D3DKMT_GETRUNTIMEDATA
1631 D3DKMT_PTR(
VOID*, pRuntimeData);
1632 UINT RuntimeDataSize;
1633} D3DKMT_GETRUNTIMEDATA;
1635typedef enum _KMTUMDVERSION
1637 KMTUMDVERSION_DX9 = 0,
1644typedef struct _D3DKMT_UMDFILENAMEINFO
1648} D3DKMT_UMDFILENAMEINFO;
1650#define D3DKMT_COMPONENTIZED_INDICATOR L'#'
1651#define D3DKMT_SUBKEY_DX9 L"DX9"
1652#define D3DKMT_SUBKEY_OPENGL L"OpenGL"
1654typedef struct _D3DKMT_OPENGLINFO
1661typedef struct _D3DKMT_SEGMENTSIZEINFO
1663 D3DKMT_ALIGN64
ULONGLONG DedicatedVideoMemorySize;
1664 D3DKMT_ALIGN64
ULONGLONG DedicatedSystemMemorySize;
1665 D3DKMT_ALIGN64
ULONGLONG SharedSystemMemorySize;
1666} D3DKMT_SEGMENTSIZEINFO;
1668typedef struct _D3DKMT_SEGMENTGROUPSIZEINFO
1670 UINT32 PhysicalAdapterIndex;
1671 D3DKMT_SEGMENTSIZEINFO LegacyInfo;
1673 D3DKMT_ALIGN64
ULONGLONG NonLocalMemory;
1674 D3DKMT_ALIGN64
ULONGLONG NonBudgetMemory;
1675} D3DKMT_SEGMENTGROUPSIZEINFO;
1677typedef struct _D3DKMT_WORKINGSETFLAGS
1679 UINT UseDefault : 1;
1681} D3DKMT_WORKINGSETFLAGS;
1683typedef struct _D3DKMT_WORKINGSETINFO
1685 D3DKMT_WORKINGSETFLAGS
Flags;
1686 ULONG MinimumWorkingSetPercentile;
1687 ULONG MaximumWorkingSetPercentile;
1688} D3DKMT_WORKINGSETINFO;
1690typedef struct _D3DKMT_FLIPINFOFLAGS
1692 UINT FlipInterval : 1;
1694} D3DKMT_FLIPINFOFLAGS;
1696typedef struct _D3DKMT_FLIPQUEUEINFO
1698 UINT MaxHardwareFlipQueueLength;
1699 UINT MaxSoftwareFlipQueueLength;
1700 D3DKMT_FLIPINFOFLAGS FlipFlags;
1701} D3DKMT_FLIPQUEUEINFO;
1703typedef struct _D3DKMT_ADAPTERADDRESS
1707 UINT FunctionNumber;
1708} D3DKMT_ADAPTERADDRESS;
1710typedef struct _D3DKMT_ADAPTERREGISTRYINFO
1716} D3DKMT_ADAPTERREGISTRYINFO;
1718typedef struct _D3DKMT_CURRENTDISPLAYMODE
1722} D3DKMT_CURRENTDISPLAYMODE;
1724typedef struct _D3DKMT_VIRTUALADDRESSFLAGS
1726 UINT VirtualAddressSupported : 1;
1728} D3DKMT_VIRTUALADDRESSFLAGS;
1730typedef struct _D3DKMT_VIRTUALADDRESSINFO
1732 D3DKMT_VIRTUALADDRESSFLAGS VirtualAddressFlags;
1733} D3DKMT_VIRTUALADDRESSINFO;
1735typedef enum _QAI_DRIVERVERSION
1737 KMT_DRIVERVERSION_WDDM_1_0 = 1000,
1738 KMT_DRIVERVERSION_WDDM_1_1_PRERELEASE = 1102,
1739 KMT_DRIVERVERSION_WDDM_1_1 = 1105,
1740#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WIN8)
1741 KMT_DRIVERVERSION_WDDM_1_2 = 1200,
1743#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM1_3)
1744 KMT_DRIVERVERSION_WDDM_1_3 = 1300,
1746#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_0)
1747 KMT_DRIVERVERSION_WDDM_2_0 = 2000,
1749#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_1)
1750 KMT_DRIVERVERSION_WDDM_2_1 = 2100,
1752#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_2)
1753 KMT_DRIVERVERSION_WDDM_2_2 = 2200,
1755#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_3)
1756 KMT_DRIVERVERSION_WDDM_2_3 = 2300,
1758#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_4)
1759 KMT_DRIVERVERSION_WDDM_2_4 = 2400,
1761#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_5)
1762 KMT_DRIVERVERSION_WDDM_2_5 = 2500,
1764#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_6)
1765 KMT_DRIVERVERSION_WDDM_2_6 = 2600,
1767#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_7)
1768 KMT_DRIVERVERSION_WDDM_2_7 = 2700,
1770#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_8)
1771 KMT_DRIVERVERSION_WDDM_2_8 = 2800,
1773#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_9)
1774 KMT_DRIVERVERSION_WDDM_2_9 = 2900,
1776#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM3_0)
1777 KMT_DRIVERVERSION_WDDM_3_0 = 3000
1779} D3DKMT_DRIVERVERSION;
1781#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WIN8)
1782typedef struct _D3DKMT_ADAPTERTYPE
1788 UINT RenderSupported : 1;
1789 UINT DisplaySupported : 1;
1790 UINT SoftwareDevice : 1;
1791 UINT PostDevice : 1;
1792#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM1_3)
1793 UINT HybridDiscrete : 1;
1794 UINT HybridIntegrated : 1;
1795 UINT IndirectDisplayDevice : 1;
1796#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_3)
1797 UINT Paravirtualized : 1;
1798 UINT ACGSupported : 1;
1799 UINT SupportSetTimingsFromVidPn : 1;
1800 UINT Detachable : 1;
1801#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_6)
1802 UINT ComputeOnly : 1;
1804#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_9)
1805 UINT RuntimePowerManagement : 1;
1822} D3DKMT_ADAPTERTYPE;
1824typedef struct _D3DKMT_OUTPUTDUPLCONTEXTSCOUNT
1827 UINT OutputDuplicationCount;
1828} D3DKMT_OUTPUTDUPLCONTEXTSCOUNT;
1830typedef struct _D3DKMT_UMD_DRIVER_VERSION
1833} D3DKMT_UMD_DRIVER_VERSION;
1835typedef struct _D3DKMT_KMD_DRIVER_VERSION
1838} D3DKMT_KMD_DRIVER_VERSION;
1840typedef struct _D3DKMT_DIRECTFLIP_SUPPORT
1843} D3DKMT_DIRECTFLIP_SUPPORT;
1845typedef struct _D3DKMT_MULTIPLANEOVERLAY_SUPPORT
1848} D3DKMT_MULTIPLANEOVERLAY_SUPPORT;
1851#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM1_3_PATH_INDEPENDENT_ROTATION)
1852typedef struct _D3DKMT_MULTIPLANEOVERLAY_HUD_SUPPORT
1856 BOOL KernelSupported;
1858} D3DKMT_MULTIPLANEOVERLAY_HUD_SUPPORT;
1861#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM1_3)
1863typedef struct _D3DKMT_DLIST_DRIVER_NAME
1866} D3DKMT_DLIST_DRIVER_NAME;
1868typedef struct _D3DKMT_CPDRIVERNAME
1871} D3DKMT_CPDRIVERNAME;
1873typedef struct _D3DKMT_MIRACASTCOMPANIONDRIVERNAME
1876} D3DKMT_MIRACASTCOMPANIONDRIVERNAME;
1880#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_0)
1882typedef struct _D3DKMT_XBOX
1887typedef struct _D3DKMT_INDEPENDENTFLIP_SUPPORT
1890} D3DKMT_INDEPENDENTFLIP_SUPPORT;
1892typedef struct _D3DKMT_MULTIPLANEOVERLAY_DECODE_SUPPORT
1895} D3DKMT_MULTIPLANEOVERLAY_DECODE_SUPPORT;
1897typedef struct _D3DKMT_ISBADDRIVERFORHWPROTECTIONDISABLED
1900} D3DKMT_ISBADDRIVERFORHWPROTECTIONDISABLED;
1902typedef struct _D3DKMT_MULTIPLANEOVERLAY_SECONDARY_SUPPORT
1905} D3DKMT_MULTIPLANEOVERLAY_SECONDARY_SUPPORT;
1907typedef struct _D3DKMT_INDEPENDENTFLIP_SECONDARY_SUPPORT
1910} D3DKMT_INDEPENDENTFLIP_SECONDARY_SUPPORT;
1912typedef struct _D3DKMT_PANELFITTER_SUPPORT
1915} D3DKMT_PANELFITTER_SUPPORT;
1917typedef struct _D3DKMT_PHYSICAL_ADAPTER_COUNT
1920} D3DKMT_PHYSICAL_ADAPTER_COUNT;
1922typedef struct _D3DKMT_DEVICE_IDS
1932typedef struct _D3DKMT_QUERY_DEVICE_IDS
1934 UINT PhysicalAdapterIndex;
1935 D3DKMT_DEVICE_IDS DeviceIds;
1936} D3DKMT_QUERY_DEVICE_IDS;
1938typedef enum _D3DKMT_PNP_KEY_TYPE
1940 D3DKMT_PNP_KEY_HARDWARE = 1,
1941 D3DKMT_PNP_KEY_SOFTWARE = 2
1942} D3DKMT_PNP_KEY_TYPE;
1944typedef struct _D3DKMT_QUERY_PHYSICAL_ADAPTER_PNP_KEY
1946 UINT PhysicalAdapterIndex;
1947 D3DKMT_PNP_KEY_TYPE PnPKeyType;
1949 D3DKMT_PTR(
UINT*, pCchDest);
1950} D3DKMT_QUERY_PHYSICAL_ADAPTER_PNP_KEY;
1952typedef enum _D3DKMT_MIRACAST_DRIVER_TYPE
1954 D3DKMT_MIRACAST_DRIVER_NOT_SUPPORTED = 0,
1955 D3DKMT_MIRACAST_DRIVER_IHV = 1,
1956 D3DKMT_MIRACAST_DRIVER_MS = 2,
1957} D3DKMT_MIRACAST_DRIVER_TYPE;
1959typedef struct _D3DKMT_QUERY_MIRACAST_DRIVER_TYPE
1961 D3DKMT_MIRACAST_DRIVER_TYPE MiracastDriverType;
1962} D3DKMT_QUERY_MIRACAST_DRIVER_TYPE;
1964typedef struct _D3DKMT_GPUMMU_CAPS
1970 UINT ReadOnlyMemorySupported : 1;
1971 UINT NoExecuteMemorySupported : 1;
1972 UINT CacheCoherentMemorySupported : 1;
1977 UINT VirtualAddressBitCount;
1978} D3DKMT_GPUMMU_CAPS;
1980typedef struct _D3DKMT_QUERY_GPUMMU_CAPS
1982 UINT PhysicalAdapterIndex;
1983 D3DKMT_GPUMMU_CAPS Caps;
1984} D3DKMT_QUERY_GPUMMU_CAPS;
1988#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_2)
1990typedef struct _D3DKMT_MPO3DDI_SUPPORT
1993} D3DKMT_MPO3DDI_SUPPORT;
1995typedef struct _D3DKMT_HWDRM_SUPPORT
1998} D3DKMT_HWDRM_SUPPORT;
2000typedef struct _D3DKMT_MPOKERNELCAPS_SUPPORT
2003} D3DKMT_MPOKERNELCAPS_SUPPORT;
2005typedef struct _D3DKMT_GET_DEVICE_VIDPN_OWNERSHIP_INFO
2008 BOOLEAN bFailedDwmAcquireVidPn;
2009} D3DKMT_GET_DEVICE_VIDPN_OWNERSHIP_INFO;
2013#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_4)
2015typedef struct _D3DKMT_BLOCKLIST_INFO
2019} D3DKMT_BLOCKLIST_INFO;
2021typedef struct _D3DKMT_QUERY_ADAPTER_UNIQUE_GUID
2023 WCHAR AdapterUniqueGUID[40];
2024} D3DKMT_QUERY_ADAPTER_UNIQUE_GUID;
2026typedef struct _D3DKMT_NODE_PERFDATA
2029 UINT32 PhysicalAdapterIndex;
2032 D3DKMT_ALIGN64
ULONGLONG MaxFrequencyOC;
2036#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_5)
2037 D3DKMT_ALIGN64
ULONGLONG MaxTransitionLatency;
2041} D3DKMT_NODE_PERFDATA;
2043typedef struct _D3DKMT_ADAPTER_PERFDATA
2045 UINT32 PhysicalAdapterIndex;
2046 D3DKMT_ALIGN64
ULONGLONG MemoryFrequency;
2047 D3DKMT_ALIGN64
ULONGLONG MaxMemoryFrequency;
2048 D3DKMT_ALIGN64
ULONGLONG MaxMemoryFrequencyOC;
2049 D3DKMT_ALIGN64
ULONGLONG MemoryBandwidth;
2054 UCHAR PowerStateOverride;
2055} D3DKMT_ADAPTER_PERFDATA;
2057typedef struct _D3DKMT_ADAPTER_PERFDATACAPS
2059 UINT32 PhysicalAdapterIndex;
2060 D3DKMT_ALIGN64
ULONGLONG MaxMemoryBandwidth;
2061 D3DKMT_ALIGN64
ULONGLONG MaxPCIEBandwidth;
2063 ULONG TemperatureMax;
2064 ULONG TemperatureWarning;
2065} D3DKMT_ADAPTER_PERFDATACAPS;
2067#define DXGK_MAX_GPUVERSION_NAME_LENGTH 32
2068typedef struct _D3DKMT_GPUVERSION
2070 UINT32 PhysicalAdapterIndex;
2072 WCHAR GpuArchitecture[DXGK_MAX_GPUVERSION_NAME_LENGTH];
2077#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_6)
2079typedef struct _D3DKMT_DRIVER_DESCRIPTION
2081 WCHAR DriverDescription[4096];
2082} D3DKMT_DRIVER_DESCRIPTION;
2084typedef struct _D3DKMT_QUERY_SCANOUT_CAPS
2088} D3DKMT_QUERY_SCANOUT_CAPS;
2090typedef enum _KMT_DISPLAY_UMD_VERSION
2092 KMT_DISPLAY_UMDVERSION_1 = 0,
2093 NUM_KMT_DISPLAY_UMDVERSIONS
2094} KMT_DISPLAY_UMD_VERSION;
2096typedef struct _D3DKMT_DISPLAY_UMD_FILENAMEINFO
2098 KMT_DISPLAY_UMD_VERSION
Version;
2100} D3DKMT_DISPLAY_UMD_FILENAMEINFO;
2102typedef struct _D3DKMT_PARAVIRTUALIZATION
2108} D3DKMT_PARAVIRTUALIZATION;
2112#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_8)
2114typedef struct _D3DKMT_HYBRID_DLIST_DLL_SUPPORT
2117} D3DKMT_HYBRID_DLIST_DLL_SUPPORT;
2121#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_9)
2124typedef enum _D3DKMT_CROSSADAPTERRESOURCE_SUPPORT_TIER
2126 D3DKMT_CROSSADAPTERRESOURCE_SUPPORT_TIER_NONE = 0,
2127 D3DKMT_CROSSADAPTERRESOURCE_SUPPORT_TIER_COPY = 1,
2128 D3DKMT_CROSSADAPTERRESOURCE_SUPPORT_TIER_TEXTURE = 2,
2129 D3DKMT_CROSSADAPTERRESOURCE_SUPPORT_TIER_SCANOUT = 3,
2130} D3DKMT_CROSSADAPTERRESOURCE_SUPPORT_TIER;
2132typedef struct _D3DKMT_CROSSADAPTERRESOURCE_SUPPORT
2134 D3DKMT_CROSSADAPTERRESOURCE_SUPPORT_TIER SupportTier;
2135} D3DKMT_CROSSADAPTERRESOURCE_SUPPORT;
2155#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WIN8)
2162#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM1_3)
2167#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM1_3_PATH_INDEPENDENT_ROTATION)
2170#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_0)
2188#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_1)
2191#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_2)
2200#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_4)
2219#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_6)
2226#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_7)
2231#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_8)
2235#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_9)
2239#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM3_0)
2277#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WIN8)
2279#define MAX_ENUM_ADAPTERS 16
2307typedef struct _D3DKMT_QUERYREMOTEVIDPNSOURCEFROMGDIDISPLAYNAME
2311} D3DKMT_QUERYREMOTEVIDPNSOURCEFROMGDIDISPLAYNAME;
2314#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_7)
2315typedef union _D3DKMT_ENUMADAPTERS_FILTER
2328} D3DKMT_ENUMADAPTERS_FILTER;
2330typedef struct _D3DKMT_ENUMADAPTERS3
2332 D3DKMT_ENUMADAPTERS_FILTER
Filter;
2335} D3DKMT_ENUMADAPTERS3;
2343typedef struct _D3DKMT_GETSHAREDPRIMARYHANDLE
2348} D3DKMT_GETSHAREDPRIMARYHANDLE;
2350typedef struct _D3DKMT_SHAREDPRIMARYLOCKNOTIFICATION
2355} D3DKMT_SHAREDPRIMARYLOCKNOTIFICATION;
2357typedef struct _D3DKMT_SHAREDPRIMARYUNLOCKNOTIFICATION
2361} D3DKMT_SHAREDPRIMARYUNLOCKNOTIFICATION;
2363#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WIN8)
2364typedef struct _D3DKMT_PINDIRECTFLIPRESOURCES
2369} D3DKMT_PINDIRECTFLIPRESOURCES;
2371typedef struct _D3DKMT_UNPINDIRECTFLIPRESOURCES
2376} D3DKMT_UNPINDIRECTFLIPRESOURCES;
2379#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_7)
2380typedef union _D3DKMT_PINRESOURCEFLAGS
2384 UINT DirectFlipResources : 1;
2389} D3DKMT_PINRESOURCEFLAGS;
2391typedef struct _D3DKMT_PINRESOURCES
2396 D3DKMT_PINRESOURCEFLAGS
Flags;
2398 D3DKMT_ALIGN64
UINT64 PagingFence;
2399} D3DKMT_PINRESOURCES;
2401typedef struct _D3DKMT_UNPINRESOURCES
2407} D3DKMT_UNPINRESOURCES;
2421#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WIN8)
2423 D3DKMT_ESCAPE_OUTPUTDUPL_SNAPSHOT = 10,
2424 D3DKMT_ESCAPE_OUTPUTDUPL_DIAGNOSTICS = 11,
2425 D3DKMT_ESCAPE_BDD_PNP = 12,
2426 D3DKMT_ESCAPE_BDD_FALLBACK = 13,
2427 D3DKMT_ESCAPE_ACTIVATE_SPECIFIC_DIAG = 14,
2428 D3DKMT_ESCAPE_MODES_PRUNED_OUT = 15,
2429 D3DKMT_ESCAPE_WHQL_INFO = 16,
2430 D3DKMT_ESCAPE_BRIGHTNESS = 17,
2431 D3DKMT_ESCAPE_EDID_CACHE = 18,
2433#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM1_3)
2434 D3DKMT_ESCAPE_MIRACAST_DISPLAY_REQUEST = 20,
2435 D3DKMT_ESCAPE_HISTORY_BUFFER_STATUS = 21,
2437 D3DKMT_ESCAPE_MIRACAST_ADAPTER_DIAG_INFO = 23,
2438#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_0)
2439 D3DKMT_ESCAPE_FORCE_BDDFALLBACK_HEADLESS = 24,
2440 D3DKMT_ESCAPE_REQUEST_MACHINE_CRASH = 25,
2442 D3DKMT_ESCAPE_SOFTGPU_ENABLE_DISABLE_HMD = 27,
2443 D3DKMT_ESCAPE_PROCESS_VERIFIER_OPTION = 28,
2444 D3DKMT_ESCAPE_ADAPTER_VERIFIER_OPTION = 29,
2445#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_1)
2446 D3DKMT_ESCAPE_IDD_REQUEST = 30,
2447 D3DKMT_ESCAPE_DOD_SET_DIRTYRECT_MODE = 31,
2448 D3DKMT_ESCAPE_LOG_CODEPOINT_PACKET = 32,
2449#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_2)
2450 D3DKMT_ESCAPE_LOG_USERMODE_DAIG_PACKET = 33,
2451 D3DKMT_ESCAPE_GET_EXTERNAL_DIAGNOSTICS = 34,
2453#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_3)
2454 D3DKMT_ESCAPE_GET_DISPLAY_CONFIGURATIONS = 36,
2455#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_4)
2456 D3DKMT_ESCAPE_QUERY_IOMMU_STATUS = 37,
2457#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_6)
2458 D3DKMT_ESCAPE_CCD_DATABASE = 38,
2459#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM3_0)
2460 D3DKMT_ESCAPE_QUERY_DMA_REMAPPING_STATUS = 39,
2470 D3DKMT_ESCAPE_WIN32K_START = 1024,
2471 D3DKMT_ESCAPE_WIN32K_HIP_DEVICE_INFO = 1024,
2472 D3DKMT_ESCAPE_WIN32K_QUERY_CD_ROTATION_BLOCK = 1025,
2473#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM1_3)
2474 D3DKMT_ESCAPE_WIN32K_DPI_INFO = 1026,
2475 D3DKMT_ESCAPE_WIN32K_PRESENTER_VIEW_INFO = 1027,
2476 D3DKMT_ESCAPE_WIN32K_SYSTEM_DPI = 1028,
2477#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_0)
2478 D3DKMT_ESCAPE_WIN32K_BDD_FALLBACK = 1029,
2479 D3DKMT_ESCAPE_WIN32K_DDA_TEST_CTL = 1030,
2480 D3DKMT_ESCAPE_WIN32K_USER_DETECTED_BLACK_SCREEN = 1031,
2484#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_5)
2485 D3DKMT_ESCAPE_WIN32K_DISPBROKER_TEST = 1035,
2486#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_6)
2487 D3DKMT_ESCAPE_WIN32K_COLOR_PROFILE_INFO = 1036,
2488#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_7)
2489 D3DKMT_ESCAPE_WIN32K_SET_DIMMED_STATE = 1037,
2490 D3DKMT_ESCAPE_WIN32K_SPECIALIZED_DISPLAY_TEST = 1038,
2499typedef struct _D3DKMT_DOD_SET_DIRTYRECT_MODE
2501 BOOL bForceFullScreenDirty;
2502}D3DKMT_DOD_SET_DIRTYRECT_MODE;
2504typedef enum _D3DKMT_TDRDBGCTRLTYPE
2506 D3DKMT_TDRDBGCTRLTYPE_FORCETDR = 0,
2507 D3DKMT_TDRDBGCTRLTYPE_DISABLEBREAK = 1,
2508 D3DKMT_TDRDBGCTRLTYPE_ENABLEBREAK = 2,
2509 D3DKMT_TDRDBGCTRLTYPE_UNCONDITIONAL = 3,
2510 D3DKMT_TDRDBGCTRLTYPE_VSYNCTDR = 4,
2511 D3DKMT_TDRDBGCTRLTYPE_GPUTDR = 5,
2512#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WIN8)
2513 D3DKMT_TDRDBGCTRLTYPE_FORCEDODTDR = 6,
2514 D3DKMT_TDRDBGCTRLTYPE_FORCEDODVSYNCTDR = 7,
2515 D3DKMT_TDRDBGCTRLTYPE_ENGINETDR = 8,
2517} D3DKMT_TDRDBGCTRLTYPE;
2519typedef enum _D3DKMT_VIDMMESCAPETYPE
2521 D3DKMT_VIDMMESCAPETYPE_SETFAULT = 0,
2522 D3DKMT_VIDMMESCAPETYPE_RUN_COHERENCY_TEST = 1,
2523 D3DKMT_VIDMMESCAPETYPE_RUN_UNMAP_TO_DUMMY_PAGE_TEST = 2,
2524 D3DKMT_VIDMMESCAPETYPE_APERTURE_CORRUPTION_CHECK = 3,
2525 D3DKMT_VIDMMESCAPETYPE_SUSPEND_CPU_ACCESS_TEST = 4,
2526 D3DKMT_VIDMMESCAPETYPE_EVICT = 5,
2527 D3DKMT_VIDMMESCAPETYPE_EVICT_BY_NT_HANDLE = 6,
2528 D3DKMT_VIDMMESCAPETYPE_GET_VAD_INFO = 7,
2529 D3DKMT_VIDMMESCAPETYPE_SET_BUDGET = 8,
2530 D3DKMT_VIDMMESCAPETYPE_SUSPEND_PROCESS = 9,
2531 D3DKMT_VIDMMESCAPETYPE_RESUME_PROCESS = 10,
2532 D3DKMT_VIDMMESCAPETYPE_GET_BUDGET = 11,
2533 D3DKMT_VIDMMESCAPETYPE_SET_TRIM_INTERVALS = 12,
2534 D3DKMT_VIDMMESCAPETYPE_EVICT_BY_CRITERIA = 13,
2535 D3DKMT_VIDMMESCAPETYPE_WAKE = 14,
2536 D3DKMT_VIDMMESCAPETYPE_DEFRAG = 15,
2537 D3DKMT_VIDMMESCAPETYPE_DELAYEXECUTION = 16,
2538#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_7)
2539 D3DKMT_VIDMMESCAPETYPE_VALIDATE_INTEGRITY = 17,
2540#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_9)
2541 D3DKMT_VIDMMESCAPETYPE_SET_EVICTION_CONFIG = 18,
2544} D3DKMT_VIDMMESCAPETYPE;
2546typedef enum _D3DKMT_VIDSCHESCAPETYPE
2548 D3DKMT_VIDSCHESCAPETYPE_PREEMPTIONCONTROL = 0,
2549 D3DKMT_VIDSCHESCAPETYPE_SUSPENDSCHEDULER = 1,
2550 D3DKMT_VIDSCHESCAPETYPE_TDRCONTROL = 2,
2551 D3DKMT_VIDSCHESCAPETYPE_SUSPENDRESUME = 3,
2552#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WIN8)
2553 D3DKMT_VIDSCHESCAPETYPE_ENABLECONTEXTDELAY = 4,
2555 D3DKMT_VIDSCHESCAPETYPE_CONFIGURE_TDR_LIMIT = 5,
2556 D3DKMT_VIDSCHESCAPETYPE_VGPU_RESET = 6,
2557 D3DKMT_VIDSCHESCAPETYPE_PFN_CONTROL = 7,
2558 D3DKMT_VIDSCHESCAPETYPE_VIRTUAL_REFRESH_RATE = 8,
2559} D3DKMT_VIDSCHESCAPETYPE;
2561typedef enum _D3DKMT_DMMESCAPETYPE
2563 D3DKMT_DMMESCAPETYPE_UNINITIALIZED = 0,
2564 D3DKMT_DMMESCAPETYPE_GET_SUMMARY_INFO = 1,
2565 D3DKMT_DMMESCAPETYPE_GET_VIDEO_PRESENT_SOURCES_INFO = 2,
2566 D3DKMT_DMMESCAPETYPE_GET_VIDEO_PRESENT_TARGETS_INFO = 3,
2567 D3DKMT_DMMESCAPETYPE_GET_ACTIVEVIDPN_INFO = 4,
2568 D3DKMT_DMMESCAPETYPE_GET_MONITORS_INFO = 5,
2569 D3DKMT_DMMESCAPETYPE_RECENTLY_COMMITTED_VIDPNS_INFO = 6,
2570 D3DKMT_DMMESCAPETYPE_RECENT_MODECHANGE_REQUESTS_INFO = 7,
2571 D3DKMT_DMMESCAPETYPE_RECENTLY_RECOMMENDED_VIDPNS_INFO = 8,
2572 D3DKMT_DMMESCAPETYPE_RECENT_MONITOR_PRESENCE_EVENTS_INFO = 9,
2573 D3DKMT_DMMESCAPETYPE_ACTIVEVIDPN_SOURCEMODESET_INFO = 10,
2574 D3DKMT_DMMESCAPETYPE_ACTIVEVIDPN_COFUNCPATHMODALITY_INFO = 11,
2575 D3DKMT_DMMESCAPETYPE_GET_LASTCLIENTCOMMITTEDVIDPN_INFO = 12,
2576 D3DKMT_DMMESCAPETYPE_GET_VERSION_INFO = 13,
2577 D3DKMT_DMMESCAPETYPE_VIDPN_MGR_DIAGNOSTICS = 14
2578} D3DKMT_DMMESCAPETYPE;
2580typedef struct _D3DKMT_HISTORY_BUFFER_STATUS
2584} D3DKMT_HISTORY_BUFFER_STATUS;
2586typedef enum _D3DKMT_VAD_ESCAPE_COMMAND
2588 D3DKMT_VAD_ESCAPE_GETNUMVADS,
2589 D3DKMT_VAD_ESCAPE_GETVAD,
2590 D3DKMT_VAD_ESCAPE_GETVADRANGE,
2591 D3DKMT_VAD_ESCAPE_GET_PTE,
2592 D3DKMT_VAD_ESCAPE_GET_GPUMMU_CAPS,
2593 D3DKMT_VAD_ESCAPE_GET_SEGMENT_CAPS,
2594} D3DKMT_VAD_ESCAPE_COMMAND;
2596typedef struct _D3DKMT_VAD_DESC
2599 D3DKMT_ALIGN64
UINT64 VadAddress;
2600 UINT NumMappedRanges;
2602 D3DKMT_ALIGN64
UINT64 StartAddress;
2603 D3DKMT_ALIGN64
UINT64 EndAddress;
2606typedef struct _D3DKMT_VA_RANGE_DESC
2608 D3DKMT_ALIGN64
UINT64 VadAddress;
2610 UINT PhysicalAdapterIndex;
2611 D3DKMT_ALIGN64
UINT64 StartAddress;
2612 D3DKMT_ALIGN64
UINT64 EndAddress;
2613 D3DKMT_ALIGN64
UINT64 DriverProtection;
2615 D3DKMT_ALIGN64
UINT64 pOwner;
2616 D3DKMT_ALIGN64
UINT64 OwnerOffset;
2618} D3DKMT_VA_RANGE_DESC;
2620typedef struct _D3DKMT_EVICTION_CRITERIA
2622 D3DKMT_ALIGN64
UINT64 MinimumSize;
2636} D3DKMT_EVICTION_CRITERIA;
2638typedef enum _D3DKMT_DEFRAG_ESCAPE_OPERATION
2640 D3DKMT_DEFRAG_ESCAPE_GET_FRAGMENTATION_STATS = 0,
2641 D3DKMT_DEFRAG_ESCAPE_DEFRAG_UPWARD = 1,
2642 D3DKMT_DEFRAG_ESCAPE_DEFRAG_DOWNWARD = 2,
2643 D3DKMT_DEFRAG_ESCAPE_DEFRAG_PASS = 3,
2644 D3DKMT_DEFRAG_ESCAPE_VERIFY_TRANSFER = 4,
2645} D3DKMT_DEFRAG_ESCAPE_OPERATION;
2647typedef struct _D3DKMT_PAGE_TABLE_LEVEL_DESC
2650 D3DKMT_ALIGN64
UINT64 IndexMask;
2651 D3DKMT_ALIGN64
UINT64 IndexShift;
2652 D3DKMT_ALIGN64
UINT64 LowerLevelsMask;
2653 D3DKMT_ALIGN64
UINT64 EntryCoverageInPages;
2654} D3DKMT_PAGE_TABLE_LEVEL_DESC;
2656typedef struct _DXGK_ESCAPE_GPUMMUCAPS
2658 BOOLEAN ReadOnlyMemorySupported;
2659 BOOLEAN NoExecuteMemorySupported;
2661 BOOLEAN CacheCoherentMemorySupported;
2664 BOOLEAN AllowNonAlignedLargePageAddress;
2665 UINT VirtualAddressBitCount;
2666 UINT PageTableLevelCount;
2667 D3DKMT_PAGE_TABLE_LEVEL_DESC PageTableLevelDesk[DXGK_MAX_PAGE_TABLE_LEVEL_COUNT];
2668} DXGK_ESCAPE_GPUMMUCAPS;
2670typedef struct _D3DKMT_GET_GPUMMU_CAPS
2672 UINT PhysicalAdapterIndex;
2673 DXGK_ESCAPE_GPUMMUCAPS GpuMmuCaps;
2674} D3DKMT_GET_GPUMMU_CAPS;
2676#define D3DKMT_GET_PTE_MAX 64
2678typedef struct _D3DKMT_GET_PTE
2680 UINT PhysicalAdapterIndex;
2681 UINT PageTableLevel;
2682 UINT PageTableIndex[DXGK_MAX_PAGE_TABLE_LEVEL_COUNT];
2685 DXGK_PTE Pte[D3DKMT_GET_PTE_MAX];
2686 UINT NumValidEntries;
2689#define D3DKMT_MAX_SEGMENT_COUNT 32
2697typedef struct _D3DKMT_SEGMENT_CAPS
2705} D3DKMT_SEGMENT_CAPS;
2707typedef struct _D3DKMT_GET_SEGMENT_CAPS
2709 UINT PhysicalAdapterIndex;
2711 D3DKMT_SEGMENT_CAPS SegmentCaps[D3DKMT_MAX_SEGMENT_COUNT];
2712} D3DKMT_GET_SEGMENT_CAPS;
2714typedef enum _D3DKMT_ESCAPE_PFN_CONTROL_COMMAND
2716 D3DKMT_ESCAPE_PFN_CONTROL_DEFAULT,
2717 D3DKMT_ESCAPE_PFN_CONTROL_FORCE_CPU,
2718 D3DKMT_ESCAPE_PFN_CONTROL_FORCE_GPU
2719} D3DKMT_ESCAPE_PFN_CONTROL_COMMAND;
2722typedef enum _D3DKMT_ESCAPE_VIRTUAL_REFRESH_RATE_TYPE
2724 D3DKMT_ESCAPE_VIRTUAL_REFRESH_RATE_TYPE_SET_BASE_DESKTOP_DURATION = 0,
2725 D3DKMT_ESCAPE_VIRTUAL_REFRESH_RATE_TYPE_SET_VSYNC_MULTIPLIER = 1,
2726 D3DKMT_ESCAPE_VIRTUAL_REFRESH_RATE_TYPE_SET_PROCESS_BOOST_ELIGIBLE = 2,
2727} D3DKMT_ESCAPE_VIRTUAL_REFRESH_RATE_TYPE;
2729typedef struct _D3DKMT_ESCAPE_VIRTUAL_REFRESH_RATE
2731 D3DKMT_ESCAPE_VIRTUAL_REFRESH_RATE_TYPE
Type;
2734 UINT VSyncMultiplier;
2735 UINT BaseDesktopDuration;
2737} D3DKMT_ESCAPE_VIRTUAL_REFRESH_RATE;
2739typedef struct _D3DKMT_VIDMM_ESCAPE
2741 D3DKMT_VIDMMESCAPETYPE
Type;
2750 ULONG ProbeAndLock : 1;
2751 ULONG SplitPoint : 1;
2752 ULONG NoDemotion : 1;
2753 ULONG SwizzlingAperture : 1;
2754 ULONG PagingPathLockSubRange : 1;
2755 ULONG PagingPathLockMinRange : 1;
2756 ULONG ComplexLock : 1;
2757 ULONG FailVARotation : 1;
2758 ULONG NoWriteCombined : 1;
2759 ULONG NoPrePatching : 1;
2760 ULONG AlwaysRepatch : 1;
2761 ULONG ExpectPreparationFailure : 1;
2762 ULONG FailUserModeVAMapping : 1;
2763#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WIN8)
2764 ULONG NeverDiscardOfferedAllocation : 1;
2765 ULONG AlwaysDiscardOfferedAllocation : 1;
2782 D3DKMT_ALIGN64
UINT64 NtHandle;
2792 D3DKMT_VAD_DESC GetVad;
2793 D3DKMT_VA_RANGE_DESC GetVadRange;
2794 D3DKMT_GET_GPUMMU_CAPS GetGpuMmuCaps;
2795 D3DKMT_GET_PTE GetPte;
2796 D3DKMT_GET_SEGMENT_CAPS GetSegmentCaps;
2798 D3DKMT_VAD_ESCAPE_COMMAND
Command;
2803 D3DKMT_ALIGN64
ULONGLONG LocalMemoryBudget;
2804 D3DKMT_ALIGN64
ULONGLONG SystemMemoryBudget;
2809 BOOL bAllowWakeOnSubmission;
2817 D3DKMT_ALIGN64
UINT64 NumBytesToTrim;
2821 ULONG MinTrimInterval;
2822 ULONG MaxTrimInterval;
2823 ULONG IdleTrimInterval;
2825 D3DKMT_EVICTION_CRITERIA EvictByCriteria;
2832 D3DKMT_DEFRAG_ESCAPE_OPERATION
Operation;
2836 D3DKMT_ALIGN64
ULONGLONG TotalCommitted;
2838 D3DKMT_ALIGN64
ULONGLONG LargestGapBefore;
2839 D3DKMT_ALIGN64
ULONGLONG LargestGapAfter;
2844 UINT PhysicalAdapterIndex;
2846 D3DKMT_ALIGN64
ULONGLONG PagingFenceValue;
2848#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_7)
2853#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_9)
2856 D3DKMT_ALIGN64
LONGLONG TimerValue;
2857 } DelayedEvictionConfig;
2861} D3DKMT_VIDMM_ESCAPE;
2863typedef struct _D3DKMT_VIDSCH_ESCAPE
2865 D3DKMT_VIDSCHESCAPETYPE
Type;
2868 BOOL PreemptionControl;
2869#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WIN8)
2870 BOOL EnableContextDelay;
2880 BOOL SuspendScheduler;
2889 D3DKMT_ESCAPE_PFN_CONTROL_COMMAND PfnControl;
2891 D3DKMT_ESCAPE_VIRTUAL_REFRESH_RATE VirtualRefreshRateControl;
2892} D3DKMT_VIDSCH_ESCAPE;
2894typedef struct _D3DKMT_TDRDBGCTRL_ESCAPE
2896 D3DKMT_TDRDBGCTRLTYPE TdrControl;
2897#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WIN8)
2903} D3DKMT_TDRDBGCTRL_ESCAPE;
2908 D3DKMT_MAX_DMM_ESCAPE_DATASIZE = 100*1024
2912typedef struct _D3DKMT_DMM_ESCAPE
2915 _In_ D3DKMT_ALIGN64 D3DKMT_SIZE_T ProvidedBufferSize;
2916 _Out_ D3DKMT_ALIGN64 D3DKMT_SIZE_T MinRequiredBufferSize;
2920typedef enum _D3DKMT_BRIGHTNESS_INFO_TYPE
2922 D3DKMT_BRIGHTNESS_INFO_GET_POSSIBLE_LEVELS = 1,
2923 D3DKMT_BRIGHTNESS_INFO_GET = 2,
2924 D3DKMT_BRIGHTNESS_INFO_SET = 3,
2925 D3DKMT_BRIGHTNESS_INFO_GET_CAPS = 4,
2926 D3DKMT_BRIGHTNESS_INFO_SET_STATE = 5,
2927 D3DKMT_BRIGHTNESS_INFO_SET_OPTIMIZATION = 6,
2928 D3DKMT_BRIGHTNESS_INFO_GET_REDUCTION = 7,
2929 D3DKMT_BRIGHTNESS_INFO_BEGIN_MANUAL_MODE = 8,
2930 D3DKMT_BRIGHTNESS_INFO_END_MANUAL_MODE = 9,
2931 D3DKMT_BRIGHTNESS_INFO_TOGGLE_LOGGING = 10,
2932 D3DKMT_BRIGHTNESS_INFO_GET_NIT_RANGES = 11,
2933} D3DKMT_BRIGHTNESS_INFO_TYPE;
2935typedef struct _D3DKMT_BRIGHTNESS_POSSIBLE_LEVELS
2938 UCHAR BrightnessLevels[256];
2939} D3DKMT_BRIGHTNESS_POSSIBLE_LEVELS;
2941typedef struct _D3DKMT_BRIGHTNESS_INFO
2943 D3DKMT_BRIGHTNESS_INFO_TYPE
Type;
2947 D3DKMT_BRIGHTNESS_POSSIBLE_LEVELS PossibleLevels;
2949 DXGK_BRIGHTNESS_CAPS BrightnessCaps;
2950 DXGK_BRIGHTNESS_STATE BrightnessState;
2951 DXGK_BACKLIGHT_OPTIMIZATION_LEVEL OptimizationLevel;
2952 DXGK_BACKLIGHT_INFO ReductionInfo;
2954 DXGK_BRIGHTNESS_GET_NIT_RANGES_OUT NitRanges;
2955 DXGK_BRIGHTNESS_GET_OUT GetBrightnessMillinits;
2956 DXGK_BRIGHTNESS_SET_IN SetBrightnessMillinits;
2958} D3DKMT_BRIGHTNESS_INFO;
2960#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_0)
2961typedef struct _D3DKMT_BDDFALLBACK_CTL
2963 BOOLEAN ForceBddHeadlessNextFallback;
2964} D3DKMT_BDDFALLBACK_CTL;
2966typedef struct _D3DKMT_REQUEST_MACHINE_CRASH_ESCAPE
2968 D3DKMT_ALIGN64 D3DKMT_ULONG_PTR Param1;
2969 D3DKMT_ALIGN64 D3DKMT_ULONG_PTR Param2;
2970 D3DKMT_ALIGN64 D3DKMT_ULONG_PTR Param3;
2971} D3DKMT_REQUEST_MACHINE_CRASH_ESCAPE;
2976typedef enum _D3DKMT_VERIFIER_OPTION_MODE
2978 D3DKMT_VERIFIER_OPTION_QUERY,
2979 D3DKMT_VERIFIER_OPTION_SET
2980} D3DKMT_VERIFIER_OPTION_MODE;
2982typedef enum _D3DKMT_PROCESS_VERIFIER_OPTION_TYPE
2991 D3DKMT_PROCESS_VERIFIER_OPTION_VIDMM_FLAGS = 1000,
2992 D3DKMT_PROCESS_VERIFIER_OPTION_VIDMM_RESTRICT_BUDGET = 1001,
2998} D3DKMT_PROCESS_VERIFIER_OPTION_TYPE;
3000typedef union _D3DKMT_PROCESS_VERIFIER_VIDMM_FLAGS
3004 UINT ForceSynchronousEvict : 1;
3005 UINT NeverDeferEvictions : 1;
3006 UINT AlwaysFailCommitOnReclaim : 1;
3007 UINT AlwaysPlaceInDemotedLocation : 1;
3011} D3DKMT_PROCESS_VERIFIER_VIDMM_FLAGS;
3013typedef struct _D3DKMT_PROCESS_VERIFIER_VIDMM_RESTRICT_BUDGET
3015 D3DKMT_ALIGN64
UINT64 LocalBudget;
3016 D3DKMT_ALIGN64
UINT64 NonLocalBudget;
3017} D3DKMT_PROCESS_VERIFIER_VIDMM_RESTRICT_BUDGET;
3019typedef union _D3DKMT_PROCESS_VERIFIER_OPTION_DATA
3021 D3DKMT_PROCESS_VERIFIER_VIDMM_FLAGS VidMmFlags;
3022 D3DKMT_PROCESS_VERIFIER_VIDMM_RESTRICT_BUDGET VidMmRestrictBudget;
3023} D3DKMT_PROCESS_VERIFIER_OPTION_DATA;
3025typedef struct _D3DKMT_PROCESS_VERIFIER_OPTION
3028 D3DKMT_PROCESS_VERIFIER_OPTION_TYPE
Type;
3029 D3DKMT_VERIFIER_OPTION_MODE
Mode;
3030 D3DKMT_PROCESS_VERIFIER_OPTION_DATA
Data;
3031} D3DKMT_PROCESS_VERIFIER_OPTION;
3033typedef enum _D3DKMT_ADAPTER_VERIFIER_OPTION_TYPE
3042 D3DKMT_ADAPTER_VERIFIER_OPTION_VIDMM_FLAGS = 1000,
3043 D3DKMT_ADAPTER_VERIFIER_OPTION_VIDMM_TRIM_INTERVAL = 1001,
3048} D3DKMT_ADAPTER_VERIFIER_OPTION_TYPE;
3050typedef union _D3DKMT_ADAPTER_VERIFIER_VIDMM_FLAGS
3054 UINT AlwaysRepatch : 1;
3055 UINT FailSharedPrimary : 1;
3056 UINT FailProbeAndLock : 1;
3057 UINT AlwaysDiscardOffer : 1;
3058 UINT NeverDiscardOffer : 1;
3059 UINT ForceComplexLock : 1;
3060 UINT NeverPrepatch : 1;
3061 UINT ExpectPreparationFailure : 1;
3062 UINT TakeSplitPoint : 1;
3063 UINT FailAcquireSwizzlingRange : 1;
3064 UINT PagingPathLockSubrange : 1;
3065 UINT PagingPathLockMinrange : 1;
3066 UINT FailVaRotation : 1;
3067 UINT NoDemotion : 1;
3068 UINT FailDefragPass : 1;
3069 UINT AlwaysProcessOfferList : 1;
3070 UINT AlwaysDecommitOffer : 1;
3071 UINT NeverMoveDefrag : 1;
3072 UINT AlwaysRelocateDisplayableResources : 1;
3073 UINT AlwaysFailGrowVPRMoves : 1;
3077} D3DKMT_ADAPTER_VERIFIER_VIDMM_FLAGS;
3079typedef struct _D3DKMT_ADAPTER_VERIFIER_VIDMM_TRIM_INTERVAL
3081 D3DKMT_ALIGN64
UINT64 MinimumTrimInterval;
3082 D3DKMT_ALIGN64
UINT64 MaximumTrimInterval;
3083 D3DKMT_ALIGN64
UINT64 IdleTrimInterval;
3084} D3DKMT_ADAPTER_VERIFIER_VIDMM_TRIM_INTERVAL;
3086typedef union _D3DKMT_ADAPTER_VERIFIER_OPTION_DATA
3088 D3DKMT_ADAPTER_VERIFIER_VIDMM_FLAGS VidMmFlags;
3089 D3DKMT_ADAPTER_VERIFIER_VIDMM_TRIM_INTERVAL VidMmTrimInterval;
3090} D3DKMT_ADAPTER_VERIFIER_OPTION_DATA;
3092typedef struct _D3DKMT_ADAPTER_VERIFIER_OPTION
3094 D3DKMT_ADAPTER_VERIFIER_OPTION_TYPE
Type;
3095 D3DKMT_VERIFIER_OPTION_MODE
Mode;
3096 D3DKMT_ADAPTER_VERIFIER_OPTION_DATA
Data;
3097} D3DKMT_ADAPTER_VERIFIER_OPTION;
3101typedef enum _D3DKMT_DEVICEESCAPE_TYPE
3103 D3DKMT_DEVICEESCAPE_VIDPNFROMALLOCATION = 0,
3104 D3DKMT_DEVICEESCAPE_RESTOREGAMMA = 1,
3105} D3DKMT_DEVICEESCAPE_TYPE;
3107typedef struct _D3DKMT_DEVICE_ESCAPE
3109 D3DKMT_DEVICEESCAPE_TYPE
Type;
3116 } VidPnFromAllocation;
3118} D3DKMT_DEVICE_ESCAPE;
3120typedef struct _D3DKMT_DEBUG_SNAPSHOT_ESCAPE
3124} D3DKMT_DEBUG_SNAPSHOT_ESCAPE;
3126#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WIN8)
3127#ifndef DXGK_DIAG_PROCESS_NAME_LENGTH
3128#define DXGK_DIAG_PROCESS_NAME_LENGTH 16
3131typedef enum _OUTPUTDUPL_CONTEXT_DEBUG_STATUS
3133 OUTPUTDUPL_CONTEXT_DEBUG_STATUS_INACTIVE = 0,
3134 OUTPUTDUPL_CONTEXT_DEBUG_STATUS_ACTIVE = 1,
3135 OUTPUTDUPL_CONTEXT_DEBUG_STATUS_PENDING_DESTROY = 2,
3136 OUTPUTDUPL_CONTEXT_DEBUG_STATUS_FORCE_UINT32 = 0xffffffff
3137}OUTPUTDUPL_CONTEXT_DEBUG_STATUS;
3139typedef struct _OUTPUTDUPL_CONTEXT_DEBUG_INFO
3141 OUTPUTDUPL_CONTEXT_DEBUG_STATUS
Status;
3142 D3DKMT_PTR(
HANDLE, ProcessID);
3143 UINT32 AccumulatedPresents;
3146 CHAR ProcessName[DXGK_DIAG_PROCESS_NAME_LENGTH];
3147} OUTPUTDUPL_CONTEXT_DEBUG_INFO;
3149#define GET_OUTPUT_DUPL_DEBUG_INFO_FROM_SNAPSHOT(pSnapshot, VidPnSource, OutputDuplContextIndex) \
3150 (pSnapshot->OutputDuplDebugInfos[(VidPnSource * pSnapshot->NumOutputDuplContexts) + OutputDuplContextIndex])
3152typedef struct _D3DKMT_OUTPUTDUPL_SNAPSHOT
3156 UINT SessionProcessCount;
3157 UINT SessionActiveConnectionsCount;
3159 UINT NumVidPnSources;
3160 UINT NumOutputDuplContexts;
3165 _Field_size_bytes_(
Size -
sizeof(_D3DKMT_OUTPUTDUPL_SNAPSHOT)) OUTPUTDUPL_CONTEXT_DEBUG_INFO OutputDuplDebugInfos[0];
3166} D3DKMT_OUTPUTDUPL_SNAPSHOT;
3169typedef enum _D3DKMT_ACTIVATE_SPECIFIC_DIAG_TYPE
3171 D3DKMT_ACTIVATE_SPECIFIC_DIAG_TYPE_EXTRA_CCD_DATABASE_INFO = 0,
3172 D3DKMT_ACTIVATE_SPECIFIC_DIAG_TYPE_MODES_PRUNED = 15,
3173}D3DKMT_ACTIVATE_SPECIFIC_DIAG_TYPE;
3175typedef struct _D3DKMT_ACTIVATE_SPECIFIC_DIAG_ESCAPE
3177 D3DKMT_ACTIVATE_SPECIFIC_DIAG_TYPE
Type;
3179} D3DKMT_ACTIVATE_SPECIFIC_DIAG_ESCAPE;
3220#define D3DKMT_QUERYRESULT_PREEMPTION_ATTEMPT_RESULT_MAX 16
3237#define D3DKMT_QUERYSTATISTICS_DMA_PACKET_TYPE_MAX 4
3255#define D3DKMT_QUERYSTATISTICS_QUEUE_PACKET_TYPE_MAX 8
3272#define D3DKMT_QUERYSTATISTICS_ALLOCATION_PRIORITY_CLASS_MAX 5
3278#define D3DKMT_QUERYSTATISTICS_SEGMENT_PREFERENCE_MAX 5
3318#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_4)
3319 D3DKMT_NODE_PERFDATA NodePerfData;
3331#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_7)
3332 D3DKMT_ALIGN64
UINT64 IsVSyncEnabled;
3333 D3DKMT_ALIGN64
UINT64 VSyncOnTotalTimeMs;
3334 D3DKMT_ALIGN64
UINT64 VSyncOffKeepPhaseTotalTimeMs;
3335 D3DKMT_ALIGN64
UINT64 VSyncOffNoPhaseTotalTimeMs;
3464#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_1)
3465typedef struct _D3DKMT_QUERYSTATISTICS_ADAPTER_INFORMATION_FLAGS
3471 UINT64 NumberOfMemoryGroups : 2;
3472 UINT64 SupportsDemotion : 1;
3477} D3DKMT_QUERYSTATISTICS_ADAPTER_INFORMATION_FLAGS;
3502#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_2)
3503 D3DKMT_QUERYSTATISTICS_ADAPTER_INFORMATION_FLAGS
Flags;
3510#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_4)
3511typedef struct _D3DKMT_QUERYSTATISTICS_PHYSICAL_ADAPTER_INFORMATION
3513 D3DKMT_ADAPTER_PERFDATA AdapterPerfData;
3514 D3DKMT_ADAPTER_PERFDATACAPS AdapterPerfDataCaps;
3515 D3DKMT_GPUVERSION GpuVersion;
3516} D3DKMT_QUERYSTATISTICS_PHYSICAL_ADAPTER_INFORMATION;
3531#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_4)
3582#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_1)
3583#define D3DKMT_QUERYSTATISTICS_PROCESS_INTERFERENCE_BUCKET_COUNT 9
3585typedef struct _D3DKMT_QUERYSTATISTICS_PROCESS_INTERFERENCE_COUNTERS
3587 D3DKMT_ALIGN64
UINT64 InterferenceCount[D3DKMT_QUERYSTATISTICS_PROCESS_INTERFERENCE_BUCKET_COUNT];
3588} D3DKMT_QUERYSTATISTICS_PROCESS_INTERFERENCE_COUNTERS;
3606#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_1)
3607 D3DKMT_QUERYSTATISTICS_PROCESS_INTERFERENCE_COUNTERS ProcessInterferenceCounters;
3612#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_9)
3613 D3DKMT_CLIENTHINT ClientHint;
3628#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WIN8)
3650#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WIN8)
3652 struct D3DKMT_ALIGN64
3654 UINT64 PreservedDuringStandby : 1;
3655 UINT64 PreservedDuringHibernate : 1;
3656 UINT64 PartiallyPreservedDuringHibernate : 1;
3660#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_9)
3661 struct D3DKMT_ALIGN64
3664 UINT64 PopulatedByReservedDDRByFirmware : 1;
3666 } SegmentProperties;
3697#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WIN8)
3717#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_1)
3718typedef struct _D3DKMT_QUERYSTATISTICS_PROCESS_SEGMENT_GROUP_INFORMATION
3720 D3DKMT_ALIGN64
UINT64 Budget;
3721 D3DKMT_ALIGN64
UINT64 Requested;
3723 D3DKMT_ALIGN64
UINT64 Demoted[D3DKMT_QUERYSTATISTICS_ALLOCATION_PRIORITY_CLASS_MAX];
3724} D3DKMT_QUERYSTATISTICS_PROCESS_SEGMENT_GROUP_INFORMATION;
3738#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_1)
3739 D3DKMT_QUERYSTATISTICS_PROCESS_SEGMENT_GROUP = 9,
3741#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_4)
3742 D3DKMT_QUERYSTATISTICS_PHYSICAL_ADAPTER = 10,
3761#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_4)
3762typedef struct _D3DKMT_QUERYSTATISTICS_QUERY_PHYSICAL_ADAPTER
3764 ULONG PhysicalAdapterIndex;
3765} D3DKMT_QUERYSTATISTICS_QUERY_PHYSICAL_ADAPTER;
3771#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_4)
3772 D3DKMT_QUERYSTATISTICS_PHYSICAL_ADAPTER_INFORMATION PhysAdapterInformation;
3782#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_1)
3783 D3DKMT_QUERYSTATISTICS_PROCESS_SEGMENT_GROUP_INFORMATION ProcessSegmentGroupInformation;
3798#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_1)
3805#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_4)
3806 D3DKMT_QUERYSTATISTICS_QUERY_PHYSICAL_ADAPTER QueryPhysAdapter;
3819typedef struct _D3DKMT_PRESENT_STATS_DWM2
3823 UINT PresentRefreshCount;
3825 UINT SyncRefreshCount;
3827 UINT CustomPresentDuration;
3828 UINT VirtualSyncRefreshCount;
3830} D3DKMT_PRESENT_STATS_DWM2;
3842#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WIN8)
3843typedef struct _D3DKMT_VIDPNSOURCEOWNER_FLAGS
3849 UINT AllowOutputDuplication : 1;
3850 UINT DisableDWMVirtualMode : 1;
3851 UINT UseNtHandles : 1;
3856} D3DKMT_VIDPNSOURCEOWNER_FLAGS;
3867#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WIN8)
3868typedef struct _D3DKMT_SETVIDPNSOURCEOWNER1
3871 D3DKMT_VIDPNSOURCEOWNER_FLAGS
Flags;
3872} D3DKMT_SETVIDPNSOURCEOWNER1;
3875#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_3)
3876typedef struct _D3DKMT_SETVIDPNSOURCEOWNER2
3878 D3DKMT_SETVIDPNSOURCEOWNER1 Version1;
3879 D3DKMT_PTR(
CONST D3DKMT_PTR_TYPE*, pVidPnSourceNtHandles);
3880} D3DKMT_SETVIDPNSOURCEOWNER2;
3889#define D3DKMT_GETPRESENTHISTORY_MAXTOKENS 2048
3891typedef struct _D3DKMT_GETPRESENTHISTORY
3898} D3DKMT_GETPRESENTHISTORY;
3900typedef struct _D3DKMT_CREATEOVERLAY
3906} D3DKMT_CREATEOVERLAY;
3908typedef struct _D3DKMT_UPDATEOVERLAY
3913} D3DKMT_UPDATEOVERLAY;
3915typedef struct _D3DKMT_FLIPOVERLAY
3920 D3DKMT_PTR(
VOID*, pPrivateDriverData);
3921 UINT PrivateDriverDataSize;
3922} D3DKMT_FLIPOVERLAY;
3924typedef struct _D3DKMT_GETOVERLAYSTATE
3929} D3DKMT_GETOVERLAYSTATE;
3931typedef struct _D3DKMT_DESTROYOVERLAY
3935} D3DKMT_DESTROYOVERLAY;
3937typedef struct _D3DKMT_WAITFORVERTICALBLANKEVENT
3942} D3DKMT_WAITFORVERTICALBLANKEVENT;
3944#define D3DKMT_MAX_WAITFORVERTICALBLANK_OBJECTS 8
3946typedef struct _D3DKMT_WAITFORVERTICALBLANKEVENT2
3952 D3DKMT_PTR_TYPE ObjectHandleArray[D3DKMT_MAX_WAITFORVERTICALBLANK_OBJECTS];
3953} D3DKMT_WAITFORVERTICALBLANKEVENT2;
3955typedef struct _D3DKMT_GETVERTICALBLANKEVENT
3960 D3DKMT_PTR(D3DKMT_PTR_TYPE*, phEvent);
3961} D3DKMT_GETVERTICALBLANKEVENT;
3963typedef struct _D3DKMT_SETSYNCREFRESHCOUNTWAITTARGET
3968 UINT TargetSyncRefreshCount;
3969} D3DKMT_SETSYNCREFRESHCOUNTWAITTARGET;
3971typedef struct _D3DKMT_SETGAMMARAMP
3975 D3DDDI_GAMMARAMP_TYPE
Type;
3979 D3DDDI_GAMMA_RAMP_RGB256x3x16* pGammaRampRgb256x3x16;
3980 D3DDDI_GAMMA_RAMP_DXGI_1* pGammaRampDXGI1;
3981 D3DKMT_PTR_HELPER( AlignUnionTo64)
3984} D3DKMT_SETGAMMARAMP;
3986typedef struct _D3DKMT_ADJUSTFULLSCREENGAMMA
3990 D3DDDI_DXGI_RGB Scale;
3992} D3DKMT_ADJUSTFULLSCREENGAMMA;
3994#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_3)
3996typedef struct _D3DKMT_SET_COLORSPACE_TRANSFORM
4005 D3DKMT_PTR_HELPER( AlignUnionTo64)
4007} D3DKMT_SET_COLORSPACE_TRANSFORM;
4011typedef struct _D3DKMT_SETVIDPNSOURCEHWPROTECTION
4016} D3DKMT_SETVIDPNSOURCEHWPROTECTION;
4018typedef struct _D3DKMT_SETHWPROTECTIONTEARDOWNRECOVERY
4022} D3DKMT_SETHWPROTECTIONTEARDOWNRECOVERY;
4024typedef enum _D3DKMT_DEVICEEXECUTION_STATE
4026 D3DKMT_DEVICEEXECUTION_ACTIVE = 1,
4027 D3DKMT_DEVICEEXECUTION_RESET = 2,
4028 D3DKMT_DEVICEEXECUTION_HUNG = 3,
4029 D3DKMT_DEVICEEXECUTION_STOPPED = 4,
4030 D3DKMT_DEVICEEXECUTION_ERROR_OUTOFMEMORY = 5,
4031 D3DKMT_DEVICEEXECUTION_ERROR_DMAFAULT = 6,
4032#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_0)
4033 D3DKMT_DEVICEEXECUTION_ERROR_DMAPAGEFAULT = 7,
4035} D3DKMT_DEVICEEXECUTION_STATE;
4037typedef struct _D3DKMT_DEVICERESET_STATE
4043 UINT DesktopSwitched : 1;
4048} D3DKMT_DEVICERESET_STATE;
4050typedef struct _D3DKMT_PRESENT_STATS
4053 UINT PresentRefreshCount;
4054 UINT SyncRefreshCount;
4057} D3DKMT_PRESENT_STATS;
4059typedef struct _D3DKMT_DEVICEPRESENT_STATE
4062 D3DKMT_PRESENT_STATS PresentStats;
4063} D3DKMT_DEVICEPRESENT_STATE;
4065typedef struct _D3DKMT_PRESENT_STATS_DWM
4068 UINT PresentRefreshCount;
4070 UINT SyncRefreshCount;
4072 UINT CustomPresentDuration;
4073} D3DKMT_PRESENT_STATS_DWM;
4075#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_0)
4077typedef struct _D3DKMT_DEVICEPAGEFAULT_STATE
4079 D3DKMT_ALIGN64
UINT64 FaultedPrimitiveAPISequenceNumber;
4080 DXGK_RENDER_PIPELINE_STAGE FaultedPipelineStage;
4081 UINT FaultedBindTableEntry;
4082 DXGK_PAGE_FAULT_FLAGS PageFaultFlags;
4083 DXGK_FAULT_ERROR_CODE FaultErrorCode;
4085} D3DKMT_DEVICEPAGEFAULT_STATE;
4089typedef struct _D3DKMT_DEVICEPRESENT_STATE_DWM
4092 D3DKMT_PRESENT_STATS_DWM PresentStatsDWM;
4093} D3DKMT_DEVICEPRESENT_STATE_DWM;
4095#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_1)
4097typedef struct _D3DKMT_DEVICEPRESENT_QUEUE_STATE
4100 BOOLEAN bQueuedPresentLimitReached;
4101} D3DKMT_DEVICEPRESENT_QUEUE_STATE;
4105typedef enum _D3DKMT_DEVICESTATE_TYPE
4107 D3DKMT_DEVICESTATE_EXECUTION = 1,
4108 D3DKMT_DEVICESTATE_PRESENT = 2,
4109 D3DKMT_DEVICESTATE_RESET = 3,
4110 D3DKMT_DEVICESTATE_PRESENT_DWM = 4,
4112#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_0)
4114 D3DKMT_DEVICESTATE_PAGE_FAULT = 5,
4118#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_1)
4120 D3DKMT_DEVICESTATE_PRESENT_QUEUE = 6,
4123} D3DKMT_DEVICESTATE_TYPE;
4125typedef struct _D3DKMT_GETDEVICESTATE
4128 D3DKMT_DEVICESTATE_TYPE StateType;
4131 D3DKMT_DEVICEEXECUTION_STATE ExecutionState;
4132 D3DKMT_DEVICEPRESENT_STATE PresentState;
4134 D3DKMT_DEVICEPRESENT_STATE_DWM PresentStateDWM;
4136#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_0)
4138 D3DKMT_DEVICEPAGEFAULT_STATE PageFaultState;
4142#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_1)
4144 D3DKMT_DEVICEPRESENT_QUEUE_STATE PresentQueueState;
4148} D3DKMT_GETDEVICESTATE;
4169#define D3DKMT_SETCONTEXTSCHEDULINGPRIORITY_ABSOLUTE 0x40000000
4171typedef struct _D3DKMT_SETCONTEXTSCHEDULINGPRIORITY
4175} D3DKMT_SETCONTEXTSCHEDULINGPRIORITY;
4177typedef struct _D3DKMT_SETCONTEXTINPROCESSSCHEDULINGPRIORITY
4181} D3DKMT_SETCONTEXTINPROCESSSCHEDULINGPRIORITY;
4183typedef struct _D3DKMT_CHANGESURFACEPOINTER
4187 D3DKMT_PTR(
LPVOID, pSurfacePointer);
4191} D3DKMT_CHANGESURFACEPOINTER;
4193typedef struct _D3DKMT_GETCONTEXTSCHEDULINGPRIORITY
4197} D3DKMT_GETCONTEXTSCHEDULINGPRIORITY;
4199typedef struct _D3DKMT_GETCONTEXTINPROCESSSCHEDULINGPRIORITY
4203} D3DKMT_GETCONTEXTINPROCESSSCHEDULINGPRIORITY;
4205typedef enum _D3DKMT_SCHEDULINGPRIORITYCLASS
4207 D3DKMT_SCHEDULINGPRIORITYCLASS_IDLE = 0,
4208 D3DKMT_SCHEDULINGPRIORITYCLASS_BELOW_NORMAL = 1,
4209 D3DKMT_SCHEDULINGPRIORITYCLASS_NORMAL = 2,
4210 D3DKMT_SCHEDULINGPRIORITYCLASS_ABOVE_NORMAL = 3,
4211 D3DKMT_SCHEDULINGPRIORITYCLASS_HIGH = 4,
4212 D3DKMT_SCHEDULINGPRIORITYCLASS_REALTIME = 5,
4213} D3DKMT_SCHEDULINGPRIORITYCLASS;
4215typedef struct _D3DKMT_GETSCANLINE
4221} D3DKMT_GETSCANLINE;
4244typedef struct _D3DKMT_POLLDISPLAYCHILDREN
4247 UINT NonDestructiveOnly : 1;
4248 UINT SynchronousPolling : 1;
4249 UINT DisableModeReset : 1;
4250 UINT PollAllAdapters : 1;
4251 UINT PollInterruptible : 1;
4253} D3DKMT_POLLDISPLAYCHILDREN;
4255typedef struct _D3DKMT_INVALIDATEACTIVEVIDPN
4258 D3DKMT_PTR(
VOID*, pPrivateDriverData);
4259 UINT PrivateDriverDataSize;
4260} D3DKMT_INVALIDATEACTIVEVIDPN;
4264 D3DKMT_PTR(
HWND, hWindow);
4267typedef struct _D3DKMT_WAITFORIDLE
4270} D3DKMT_WAITFORIDLE;
4272typedef struct _D3DKMT_CHECKMONITORPOWERSTATE
4276} D3DKMT_CHECKMONITORPOWERSTATE;
4278typedef struct _D3DKMT_SETDISPLAYPRIVATEDRIVERFORMAT
4282 UINT PrivateDriverFormatAttribute;
4283} D3DKMT_SETDISPLAYPRIVATEDRIVERFORMAT;
4303typedef struct _D3DKMT_ACQUIREKEYEDMUTEX
4308 D3DKMT_ALIGN64
UINT64 FenceValue;
4309} D3DKMT_ACQUIREKEYEDMUTEX;
4311typedef struct _D3DKMT_RELEASEKEYEDMUTEX
4315 D3DKMT_ALIGN64
UINT64 FenceValue;
4316} D3DKMT_RELEASEKEYEDMUTEX;
4318#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WIN8)
4367typedef struct _D3DKMT_ACQUIREKEYEDMUTEX2
4372 D3DKMT_ALIGN64
UINT64 FenceValue;
4374 VOID*, pPrivateRuntimeData);
4376 UINT PrivateRuntimeDataSize;
4377} D3DKMT_ACQUIREKEYEDMUTEX2;
4379typedef struct _D3DKMT_RELEASEKEYEDMUTEX2
4383 D3DKMT_ALIGN64
UINT64 FenceValue;
4385 VOID*, pPrivateRuntimeData);
4387 UINT PrivateRuntimeDataSize;
4388} D3DKMT_RELEASEKEYEDMUTEX2;
4392typedef struct _D3DKMT_CONFIGURESHAREDRESOURCE
4399} D3DKMT_CONFIGURESHAREDRESOURCE;
4401typedef struct _D3DKMT_CHECKSHAREDRESOURCEACCESS
4405} D3DKMT_CHECKSHAREDRESOURCEACCESS;
4407#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WIN8)
4408typedef enum _D3DKMT_OFFER_PRIORITY
4410 D3DKMT_OFFER_PRIORITY_LOW=1,
4411 D3DKMT_OFFER_PRIORITY_NORMAL,
4412 D3DKMT_OFFER_PRIORITY_HIGH,
4413 D3DKMT_OFFER_PRIORITY_AUTO,
4414} D3DKMT_OFFER_PRIORITY;
4416#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_0)
4417typedef struct _D3DKMT_OFFER_FLAGS
4423 UINT OfferImmediately : 1;
4424 UINT AllowDecommit : 1;
4429} D3DKMT_OFFER_FLAGS;
4432typedef struct _D3DKMT_OFFERALLOCATIONS
4437 UINT NumAllocations;
4439#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_0)
4440 D3DKMT_OFFER_FLAGS
Flags;
4442} D3DKMT_OFFERALLOCATIONS;
4444typedef struct _D3DKMT_RECLAIMALLOCATIONS
4449 D3DKMT_PTR(
BOOL*, pDiscarded);
4450 UINT NumAllocations;
4451} D3DKMT_RECLAIMALLOCATIONS;
4453typedef struct _D3DKMT_RECLAIMALLOCATIONS2
4456 UINT NumAllocations;
4459#if(DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_1 || \
4460 D3D_UMD_INTERFACE_VERSION >= D3D_UMD_INTERFACE_VERSION_WDDM2_1)
4464 D3DDDI_RECLAIM_RESULT* pResults;
4465 D3DKMT_PTR_HELPER(AlignUnionTo64)
4468 D3DKMT_PTR(
BOOL*, pDiscarded);
4470 D3DKMT_ALIGN64
UINT64 PagingFenceValue;
4472} D3DKMT_RECLAIMALLOCATIONS2;
4474typedef struct _D3DKMT_OUTPUTDUPLCREATIONFLAGS
4480 UINT CompositionUiCaptureOnly : 1;
4485} D3DKMT_OUTPUTDUPLCREATIONFLAGS;
4487typedef struct _D3DKMT_OUTPUTDUPL_KEYEDMUTEX
4489 D3DKMT_PTR(
HANDLE, hSharedSurfaceNt);
4490}D3DKMT_OUTPUTDUPL_KEYEDMUTEX;
4492#define OUTPUTDUPL_CREATE_MAX_KEYEDMUTXES 3
4493typedef struct _D3DKMT_CREATE_OUTPUTDUPL
4497 UINT KeyedMutexCount;
4498 UINT RequiredKeyedMutexCount;
4499 D3DKMT_OUTPUTDUPL_KEYEDMUTEX KeyedMutexs[OUTPUTDUPL_CREATE_MAX_KEYEDMUTXES];
4500 D3DKMT_OUTPUTDUPLCREATIONFLAGS
Flags;
4501} D3DKMT_CREATE_OUTPUTDUPL;
4503typedef struct _D3DKMT_DESTROY_OUTPUTDUPL
4507 BOOL bDestroyAllContexts;
4508} D3DKMT_DESTROY_OUTPUTDUPL;
4510typedef struct _D3DKMT_OUTPUTDUPL_POINTER_POSITION
4514} D3DKMT_OUTPUTDUPL_POINTER_POSITION;
4516typedef struct _D3DKMT_OUTPUTDUPL_FRAMEINFO
4520 UINT AccumulatedFrames;
4521 BOOL RectsCoalesced;
4522 BOOL ProtectedContentMaskedOut;
4523 D3DKMT_OUTPUTDUPL_POINTER_POSITION PointerPosition;
4524 UINT TotalMetadataBufferSize;
4525 UINT PointerShapeBufferSize;
4526} D3DKMT_OUTPUTDUPL_FRAMEINFO;
4528typedef struct _D3DKMT_OUTPUTDUPL_GET_FRAMEINFO
4532 D3DKMT_OUTPUTDUPL_FRAMEINFO FrameInfo;
4533} D3DKMT_OUTPUTDUPL_GET_FRAMEINFO;
4535typedef enum _D3DKMT_OUTPUTDUPL_METADATATYPE
4537 D3DKMT_OUTPUTDUPL_METADATATYPE_DIRTY_RECTS = 0,
4538 D3DKMT_OUTPUTDUPL_METADATATYPE_MOVE_RECTS = 1
4539} D3DKMT_OUTPUTDUPL_METADATATYPE;
4541typedef struct _D3DKMT_OUTPUTDUPL_METADATA
4545 D3DKMT_OUTPUTDUPL_METADATATYPE
Type;
4546 UINT BufferSizeSupplied;
4548 UINT BufferSizeRequired;
4549} D3DKMT_OUTPUTDUPL_METADATA;
4551typedef enum _D3DKMT_OUTDUPL_POINTER_SHAPE_TYPE
4553 D3DKMT_OUTDUPL_POINTER_SHAPE_TYPE_MONOCHROME = 0x00000001,
4554 D3DKMT_OUTDUPL_POINTER_SHAPE_TYPE_COLOR = 0x00000002,
4555 D3DKMT_OUTDUPL_POINTER_SHAPE_TYPE_MASKED_COLOR = 0x00000004
4556} D3DKMT_OUTDUPL_POINTER_SHAPE_TYPE;
4558typedef struct _D3DKMT_OUTDUPL_POINTER_SHAPE_INFO
4560 D3DKMT_OUTDUPL_POINTER_SHAPE_TYPE
Type;
4565} D3DKMT_OUTDUPL_POINTER_SHAPE_INFO;
4567typedef struct _D3DKMT_OUTPUTDUPL_GET_POINTER_SHAPE_DATA
4571 UINT BufferSizeSupplied;
4573 UINT BufferSizeRequired;
4574 D3DKMT_OUTDUPL_POINTER_SHAPE_INFO ShapeInfo;
4575} D3DKMT_OUTPUTDUPL_GET_POINTER_SHAPE_DATA;
4577typedef struct _D3DKMT_OUTPUTDUPL_RELEASE_FRAME
4581 UINT NextKeyMutexIdx;
4582} D3DKMT_OUTPUTDUPL_RELEASE_FRAME;
4585#define D3DKMT_MAX_OBJECTS_PER_HANDLE 3
4587#define D3DKMT_MAX_BUNDLE_OBJECTS_PER_HANDLE 16
4589#define D3DKMT_GDI_STYLE_HANDLE_DECORATION 0x2
4591typedef struct _D3DKMT_GETSHAREDRESOURCEADAPTERLUID
4594 D3DKMT_PTR(
HANDLE, hNtHandle);
4596} D3DKMT_GETSHAREDRESOURCEADAPTERLUID;
4598typedef enum _D3DKMT_GPU_PREFERENCE_QUERY_STATE
4600 D3DKMT_GPU_PREFERENCE_STATE_UNINITIALIZED,
4601 D3DKMT_GPU_PREFERENCE_STATE_HIGH_PERFORMANCE,
4602 D3DKMT_GPU_PREFERENCE_STATE_MINIMUM_POWER,
4603 D3DKMT_GPU_PREFERENCE_STATE_UNSPECIFIED,
4604 D3DKMT_GPU_PREFERENCE_STATE_NOT_FOUND,
4605 D3DKMT_GPU_PREFERENCE_STATE_USER_SPECIFIED_GPU
4606} D3DKMT_GPU_PREFERENCE_QUERY_STATE;
4608typedef enum _D3DKMT_GPU_PREFERENCE_QUERY_TYPE
4610 D3DKMT_GPU_PREFERENCE_TYPE_IHV_DLIST,
4611 D3DKMT_GPU_PREFERENCE_TYPE_DX_DATABASE,
4612 D3DKMT_GPU_PREFERENCE_TYPE_USER_PREFERENCE
4613} D3DKMT_GPU_PREFERENCE_QUERY_TYPE;
4615typedef struct _D3DKMT_HYBRID_LIST
4617 D3DKMT_GPU_PREFERENCE_QUERY_STATE
State;
4619 BOOL bUserPreferenceQuery;
4620#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_6)
4621 D3DKMT_GPU_PREFERENCE_QUERY_TYPE
QueryType;
4623} D3DKMT_HYBRID_LIST;
4625#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM1_3)
4628 DXGK_MIRACAST_CHUNK_INFO ChunkInfo;
4629 UINT PrivateDriverDataSize;
4630 BYTE PrivateDriverData[1];
4631} D3DKMT_MIRACAST_CHUNK_DATA;
4635 MiracastStopped = 0,
4636 MiracastStartPending = 1,
4637 MiracastStarted = 2,
4638 MiracastStopPending = 3,
4639} D3DKMT_MIRACAST_DISPLAY_DEVICE_STATE;
4643 D3DKMT_MIRACAST_DEVICE_STATUS_SUCCESS = 0,
4644 D3DKMT_MIRACAST_DEVICE_STATUS_SUCCESS_NO_MONITOR = 1,
4645 D3DKMT_MIRACAST_DEVICE_STATUS_PENDING = 2,
4646 D3DKMT_MIRACAST_DEVICE_STATUS_UNKOWN_ERROR = 0x80000001,
4647 D3DKMT_MIRACAST_DEVICE_STATUS_GPU_RESOURCE_IN_USE = 0x80000002,
4648 D3DKMT_MIRACAST_DEVICE_STATUS_DEVICE_ERROR = 0x80000003,
4649 D3DKMT_MIRACAST_DEVICE_STATUS_UNKOWN_PAIRING = 0x80000004,
4650 D3DKMT_MIRACAST_DEVICE_STATUS_REMOTE_SESSION = 0x80000005,
4651 D3DKMT_MIRACAST_DEVICE_STATUS_DEVICE_NOT_FOUND = 0x80000006,
4652 D3DKMT_MIRACAST_DEVICE_STATUS_DEVICE_NOT_STARTED = 0x80000007,
4653 D3DKMT_MIRACAST_DEVICE_STATUS_INVALID_PARAMETER = 0x80000008,
4654 D3DKMT_MIRACAST_DEVICE_STATUS_INSUFFICIENT_BANDWIDTH = 0x80000009,
4655 D3DKMT_MIRACAST_DEVICE_STATUS_INSUFFICIENT_MEMORY = 0x8000000A,
4656 D3DKMT_MIRACAST_DEVICE_STATUS_CANCELLED = 0x8000000B,
4657} D3DKMT_MIRACAST_DEVICE_STATUS;
4659typedef struct _D3DKMT_MIRACAST_DISPLAY_DEVICE_STATUS
4664 D3DKMT_MIRACAST_DISPLAY_DEVICE_STATE
State;
4665} D3DKMT_MIRACAST_DISPLAY_DEVICE_STATUS, *PD3DKMT_MIRACAST_DISPLAY_DEVICE_STATUS;
4667typedef struct _D3DKMT_MIRACAST_DISPLAY_DEVICE_CAPS
4670 ULONG DefaultControlPort;
4672} D3DKMT_MIRACAST_DISPLAY_DEVICE_CAPS, *PD3DKMT_MIRACAST_DISPLAY_DEVICE_CAPS;
4674#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_0)
4675typedef struct _D3DKMT_MIRACAST_DISPLAY_STOP_SESSIONS
4680} D3DKMT_MIRACAST_DISPLAY_STOP_SESSIONS, *PD3DKMT_MIRACAST_DISPLAY_STOP_SESSIONS;
4686#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_0)
4688typedef struct _D3DKMT_WAITFORSYNCHRONIZATIONOBJECTFROMCPU
4697 const UINT64*, FenceValueArray);
4699 D3DKMT_PTR(
HANDLE, hAsyncEvent);
4702 D3DDDI_WAITFORSYNCHRONIZATIONOBJECTFROMCPU_FLAGS
Flags;
4703} D3DKMT_WAITFORSYNCHRONIZATIONOBJECTFROMCPU;
4705typedef struct _D3DKMT_SIGNALSYNCHRONIZATIONOBJECTFROMCPU
4714 const UINT64*, FenceValueArray);
4717} D3DKMT_SIGNALSYNCHRONIZATIONOBJECTFROMCPU;
4719typedef struct _D3DKMT_WAITFORSYNCHRONIZATIONOBJECTFROMGPU
4730 const UINT64* MonitoredFenceValueArray;
4732 D3DKMT_ALIGN64
UINT64 FenceValue;
4736} D3DKMT_WAITFORSYNCHRONIZATIONOBJECTFROMGPU;
4738typedef struct _D3DKMT_SIGNALSYNCHRONIZATIONOBJECTFROMGPU
4749 const UINT64* MonitoredFenceValueArray;
4753} D3DKMT_SIGNALSYNCHRONIZATIONOBJECTFROMGPU;
4755typedef struct _D3DKMT_SIGNALSYNCHRONIZATIONOBJECTFROMGPU2
4764 ULONG BroadcastContextCount;
4771 D3DKMT_ALIGN64
UINT64 FenceValue;
4776 const UINT64* MonitoredFenceValueArray;
4780} D3DKMT_SIGNALSYNCHRONIZATIONOBJECTFROMGPU2;
4782typedef struct _D3DKMT_CREATEPAGINGQUEUE
4785 D3DDDI_PAGINGQUEUE_PRIORITY
Priority;
4788 D3DKMT_PTR(
VOID*, FenceValueCPUVirtualAddress);
4789 UINT PhysicalAdapterIndex;
4790} D3DKMT_CREATEPAGINGQUEUE;
4792typedef struct _D3DKMT_EVICT
4795 UINT NumAllocations;
4797 D3DDDI_EVICT_FLAGS
Flags;
4798 D3DKMT_ALIGN64
UINT64 NumBytesToTrim;
4801typedef struct _D3DKMT_LOCK2
4805 D3DDDICB_LOCK2FLAGS
Flags;
4809typedef struct _D3DKMT_UNLOCK2
4815typedef struct _D3DKMT_INVALIDATECACHE
4819 D3DKMT_ALIGN64 D3DKMT_SIZE_T
Offset;
4820 D3DKMT_ALIGN64 D3DKMT_SIZE_T
Length;
4821} D3DKMT_INVALIDATECACHE;
4823typedef struct _D3DKMT_FREEGPUVIRTUALADDRESS
4827 D3DKMT_ALIGN64 D3DGPU_SIZE_T
Size;
4828} D3DKMT_FREEGPUVIRTUALADDRESS;
4830typedef struct _D3DKMT_UPDATEGPUVIRTUALADDRESS
4836 D3DKMT_PTR(D3DDDI_UPDATEGPUVIRTUALADDRESS_OPERATION*, Operations);
4837 D3DKMT_ALIGN64 D3DKMT_SIZE_T Reserved0;
4839 D3DKMT_ALIGN64
UINT64 FenceValue;
4849} D3DKMT_UPDATEGPUVIRTUALADDRESS;
4851typedef struct _D3DKMT_CREATECONTEXTVIRTUAL
4855 UINT EngineAffinity;
4856 D3DDDI_CREATECONTEXTFLAGS
Flags;
4857 D3DKMT_PTR(
VOID*, pPrivateDriverData);
4858 UINT PrivateDriverDataSize;
4859 D3DKMT_CLIENTHINT ClientHint;
4861} D3DKMT_CREATECONTEXTVIRTUAL;
4863typedef struct _D3DKMT_SUBMITCOMMANDFLAGS
4865 UINT NullRendering : 1;
4866 UINT PresentRedirected : 1;
4867 UINT NoKmdAccess : 1;
4869} D3DKMT_SUBMITCOMMANDFLAGS;
4871typedef struct _D3DKMT_SUBMITCOMMAND
4875 D3DKMT_SUBMITCOMMANDFLAGS
Flags;
4876 D3DKMT_ALIGN64
ULONGLONG PresentHistoryToken;
4877 UINT BroadcastContextCount;
4878 D3DKMT_HANDLE BroadcastContext[D3DDDI_MAX_BROADCAST_CONTEXT];
4879 D3DKMT_PTR(
VOID*, pPrivateDriverData);
4880 UINT PrivateDriverDataSize;
4882 D3DKMT_HANDLE WrittenPrimaries[D3DDDI_MAX_WRITTEN_PRIMARIES];
4883 UINT NumHistoryBuffers;
4885} D3DKMT_SUBMITCOMMAND;
4887#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_2)
4889typedef struct _D3DKMT_SUBMITCOMMANDTOHWQUEUE
4893 D3DKMT_ALIGN64
UINT64 HwQueueProgressFenceId;
4898 UINT PrivateDriverDataSize;
4901 VOID*, pPrivateDriverData);
4907} D3DKMT_SUBMITCOMMANDTOHWQUEUE;
4909typedef struct _D3DKMT_SUBMITWAITFORSYNCOBJECTSTOHWQUEUE
4919 const UINT64*, FenceValueArray);
4920} D3DKMT_SUBMITWAITFORSYNCOBJECTSTOHWQUEUE;
4922typedef struct _D3DKMT_SUBMITSIGNALSYNCOBJECTSTOHWQUEUE
4926 ULONG BroadcastHwQueueCount;
4937 const UINT64*, FenceValueArray);
4938} D3DKMT_SUBMITSIGNALSYNCOBJECTSTOHWQUEUE;
4955typedef struct _D3DKMT_CHANGEVIDEOMMEMORYRESERVATION
4961 D3DKMT_ALIGN64
UINT64 Reservation;
4962 UINT PhysicalAdapterIndex;
4963} D3DKMT_CHANGEVIDEOMEMORYRESERVATION;
4965typedef struct _D3DKMT_SETSTABLEPOWERSTATE
4969} D3DKMT_SETSTABLEPOWERSTATE;
4972typedef struct _D3DKMT_SHAREOBJECTS {
4976 D3DKMT_PTR(
PVOID, pObjectAttributes);
4978 D3DKMT_PTR(
HANDLE*, pSharedNtHandle);
4979} D3DKMT_SHAREOBJECTS;
4981typedef struct _D3DKMT_SHAREOBJECTWITHHOST
4986 D3DKMT_ALIGN64
UINT64 hVailProcessNtHandle;
4987} D3DKMT_SHAREOBJECTWITHHOST;
4996typedef struct _D3DKMT_CREATESYNCFILE
5000 D3DKMT_ALIGN64
UINT64 FenceValue;
5001 D3DKMT_ALIGN64
UINT64 hSyncFile;
5002} D3DKMT_CREATESYNCFILE;
5004typedef struct _D3DKMT_TRIMNOTIFICATION
5007 D3DDDI_TRIMRESIDENCYSET_FLAGS
Flags;
5008 D3DKMT_ALIGN64
UINT64 NumBytesToTrim;
5010} D3DKMT_TRIMNOTIFICATION;
5012typedef VOID (
APIENTRY *PFND3DKMT_TRIMNOTIFICATIONCALLBACK)(
_Inout_ D3DKMT_TRIMNOTIFICATION*);
5014typedef struct _D3DKMT_REGISTERTRIMNOTIFICATION
5018 PFND3DKMT_TRIMNOTIFICATIONCALLBACK
Callback;
5021} D3DKMT_REGISTERTRIMNOTIFICATION;
5023typedef struct _D3DKMT_UNREGISTERTRIMNOTIFICATION
5027 D3DKMT_PTR(PFND3DKMT_TRIMNOTIFICATIONCALLBACK,
Callback);
5031} D3DKMT_UNREGISTERTRIMNOTIFICATION;
5033typedef struct _D3DKMT_BUDGETCHANGENOTIFICATION
5036 D3DKMT_ALIGN64
UINT64 Budget;
5037} D3DKMT_BUDGETCHANGENOTIFICATION;
5039typedef VOID (
APIENTRY *PFND3DKMT_BUDGETCHANGENOTIFICATIONCALLBACK)(
_In_ D3DKMT_BUDGETCHANGENOTIFICATION*);
5041typedef struct _D3DKMT_REGISTERBUDGETCHANGENOTIFICATION
5044 D3DKMT_PTR(PFND3DKMT_BUDGETCHANGENOTIFICATIONCALLBACK,
Callback);
5047} D3DKMT_REGISTERBUDGETCHANGENOTIFICATION;
5049typedef struct _D3DKMT_UNREGISTERBUDGETCHANGENOTIFICATION
5052} D3DKMT_UNREGISTERBUDGETCHANGENOTIFICATION;
5054typedef struct _D3DKMT_QUERYVIDPNEXCLUSIVEOWNERSHIP
5057 D3DKMT_PTR(
HWND, hWindow);
5061} D3DKMT_QUERYVIDPNEXCLUSIVEOWNERSHIP;
5064typedef enum _D3DKMT_DEVICE_ERROR_REASON {
5065 D3DKMT_DEVICE_ERROR_REASON_GENERIC = 0x80000000,
5066 D3DKMT_DEVICE_ERROR_REASON_DRIVER_ERROR = 0x80000006,
5067} D3DKMT_DEVICE_ERROR_REASON;
5069typedef struct _D3DKMT_MARKDEVICEASERROR
5072 D3DKMT_DEVICE_ERROR_REASON
Reason;
5073} D3DKMT_MARKDEVICEASERROR;
5075typedef struct _D3DKMT_FLUSHHEAPTRANSITIONS
5078} D3DKMT_FLUSHHEAPTRANSITIONS;
5080typedef struct _D3DKMT_QUERYPROCESSOFFERINFO
5086} D3DKMT_QUERYPROCESSOFFERINFO;
5088typedef union _D3DKMT_TRIMPROCESSCOMMITMENT_FLAGS
5093 UINT OnlyRepurposed : 1;
5097} D3DKMT_TRIMPROCESSCOMMITMENT_FLAGS;
5099typedef struct _D3DKMT_TRIMPROCESSCOMMITMENT
5103 _In_ D3DKMT_TRIMPROCESSCOMMITMENT_FLAGS
Flags;
5104 _In_ D3DKMT_ALIGN64
UINT64 DecommitRequested;
5106} D3DKMT_TRIMPROCESSCOMMITMENT;
5108#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_2)
5110typedef struct _D3DKMT_CREATEHWCONTEXT
5114 UINT EngineAffinity;
5115 D3DDDI_CREATEHWCONTEXTFLAGS
Flags;
5116 UINT PrivateDriverDataSize;
5119 VOID*, pPrivateDriverData);
5121} D3DKMT_CREATEHWCONTEXT;
5123typedef struct _D3DKMT_DESTROYHWCONTEXT
5126} D3DKMT_DESTROYHWCONTEXT;
5128typedef struct _D3DKMT_CREATEHWQUEUE
5131 D3DDDI_CREATEHWQUEUEFLAGS
Flags;
5132 UINT PrivateDriverDataSize;
5135 VOID*, pPrivateDriverData);
5138 D3DKMT_PTR(
VOID*, HwQueueProgressFenceCPUVirtualAddress);
5140} D3DKMT_CREATEHWQUEUE;
5142typedef struct _D3DKMT_DESTROYHWQUEUE
5145} D3DKMT_DESTROYHWQUEUE;
5147typedef struct _D3DKMT_GETALLOCATIONPRIORITY
5152 UINT AllocationCount;
5153 D3DKMT_PTR(
UINT*, pPriorities);
5154} D3DKMT_GETALLOCATIONPRIORITY;
5164#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_1)
5165typedef union _D3DKMT_SETFSEBLOCKFLAGS
5173} D3DKMT_SETFSEBLOCKFLAGS;
5175typedef struct _D3DKMT_SETFSEBLOCK
5180 D3DKMT_SETFSEBLOCKFLAGS
Flags;
5181} D3DKMT_SETFSEBLOCK;
5183typedef union _D3DKMT_QUERYFSEFLAGS
5191} D3DKMT_QUERYFSEBLOCKFLAGS;
5193typedef struct _D3DKMT_QUERYFSEBLOCK
5198 D3DKMT_QUERYFSEBLOCKFLAGS
Flags;
5199} D3DKMT_QUERYFSEBLOCK;
5202#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_2)
5205#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_3)
5207typedef struct _D3DKMT_CREATEPROTECTEDSESSION
5213 UINT PrivateDriverDataSize;
5216 UINT PrivateRuntimeDataSize;
5220} D3DKMT_CREATEPROTECTEDSESSION;
5222typedef struct _D3DKMT_DESTROYPROTECTEDSESSION
5226} D3DKMT_DESTROYPROTECTEDSESSION;
5228typedef enum _D3DKMT_PROTECTED_SESSION_STATUS
5230 D3DKMT_PROTECTED_SESSION_STATUS_OK = 0,
5231 D3DKMT_PROTECTED_SESSION_STATUS_INVALID = 1,
5232} D3DKMT_PROTECTED_SESSION_STATUS;
5234typedef struct _D3DKMT_QUERYPROTECTEDSESSIONSTATUS
5237 D3DKMT_PROTECTED_SESSION_STATUS
Status;
5239} D3DKMT_QUERYPROTECTEDSESSIONSTATUS;
5241typedef struct _D3DKMT_QUERYPROTECTEDSESSIONINFOFROMNTHANDLE
5243 D3DKMT_PTR(
HANDLE, hNtHandle);
5246 UINT PrivateDriverDataSize;
5249 UINT PrivateRuntimeDataSize;
5251} D3DKMT_QUERYPROTECTEDSESSIONINFOFROMNTHANDLE;
5253typedef struct _D3DKMT_OPENPROTECTEDSESSIONFROMNTHANDLE
5255 D3DKMT_PTR(
HANDLE, hNtHandle);
5258} D3DKMT_OPENPROTECTEDSESSIONFROMNTHANDLE;
5261typedef struct _D3DKMT_GETPROCESSDEVICEREMOVALSUPPORT
5267} D3DKMT_GETPROCESSDEVICEREMOVALSUPPORT;
5273typedef enum _D3DKMT_TRACKEDWORKLOADPOLICY
5275 D3DKMT_TRACKEDWORKLOADPOLICY_NORMAL = 0,
5276 D3DKMT_TRACKEDWORKLOADPOLICY_ENERGY_EFFICIENT = 1,
5277 D3DKMT_TRACKEDWORKLOADPOLICY_HIGH_SPEED = 2
5278} D3DKMT_TRACKEDWORKLOADPOLICY;
5280typedef enum _D3DKMT_TRACKEDWORKLOADDEADLINETYPE
5282 D3DKMT_TRACKEDWORKLOADDEADLINETYPE_ABSOLUTE = 0,
5283 D3DKMT_TRACKEDWORKLOADDEADLINETYPE_VBLANK = 1,
5284} D3DKMT_TRACKEDWORKLOADDEADLINETYPE;
5286typedef struct _D3DKMT_TRACKEDWORKLOADDEADLINE {
5288 D3DKMT_ALIGN64
UINT64 VBlankOffsetHundredsNS;
5289 D3DKMT_ALIGN64
UINT64 AbsoluteQPC;
5291} D3DKMT_TRACKEDWORKLOADDEADLINE;
5293typedef struct _D3DKMT_TRACKEDWORKLOADFLAGS
5300 UINT SimilarLoad : 1;
5305} D3DKMT_TRACKEDWORKLOADFLAGS;
5307#define D3DKMT_MAX_TRACKED_WORKLOAD_INSTANCE_PAIRS 32
5309typedef struct _D3DKMT_CREATETRACKEDWORKLOAD
5315 D3DKMT_TRACKEDWORKLOADDEADLINETYPE DeadlineType;
5317 D3DKMT_TRACKEDWORKLOADFLAGS
Flags;
5318 D3DKMT_TRACKEDWORKLOADPOLICY
Policy;
5320 UINT MaxInstancePairs;
5323} D3DKMT_CREATETRACKEDWORKLOAD;
5325typedef struct _D3DKMT_DESTROYTRACKEDWORKLOAD
5329} D3DKMT_DESTROYTRACKEDWORKLOAD;
5331typedef struct _D3DKMT_UPDATETRACKEDWORKLOAD
5335 D3DKMT_TRACKEDWORKLOADDEADLINE FinishDeadline;
5336 UINT BeginTrackedWorkloadIndex;
5337 UINT EndTrackedWorkloadIndex;
5340 D3DKMT_ALIGN64
UINT64 PairID;
5341 D3DKMT_ALIGN64
UINT64 FenceSubmissionValue;
5342 D3DKMT_ALIGN64
UINT64 FenceCompletedValue;
5343 D3DKMT_ALIGN64
UINT64 GPUTimestampFrequency;
5344 D3DKMT_ALIGN64
UINT64 GPUCalibrationTimestamp;
5345 D3DKMT_ALIGN64
UINT64 CPUCalibrationTimestamp;
5346 D3DKMT_ALIGN64
UINT64 TimestampArray[D3DKMT_MAX_TRACKED_WORKLOAD_INSTANCE_PAIRS * 2];
5347 BOOL TimestampArrayProcessed;
5348} D3DKMT_UPDATETRACKEDWORKLOAD;
5350typedef struct _D3DKMT_GETAVAILABLETRACKEDWORKLOADINDEX
5354 D3DKMT_ALIGN64
UINT64 FenceCompletedValue;
5355 D3DKMT_ALIGN64
UINT64 TimestampArray[D3DKMT_MAX_TRACKED_WORKLOAD_INSTANCE_PAIRS * 2];
5356 UINT AvailableTrackedWorkloadIndex;
5357 BOOL TimestampArrayProcessed;
5358} D3DKMT_GETAVAILABLETRACKEDWORKLOADINDEX;
5360typedef struct _D3DKMT_TRACKEDWORKLOADSTATEFLAGS
5367 UINT NotEnoughSamples: 1;
5372} D3DKMT_TRACKEDWORKLOADSTATEFLAGS;
5374typedef struct _D3DKMT_TRACKEDWORKLOAD_STATISTICS
5376 D3DKMT_ALIGN64
INT64 Mean;
5377 D3DKMT_ALIGN64
INT64 Minimum;
5378 D3DKMT_ALIGN64
INT64 Maximum;
5379 D3DKMT_ALIGN64
INT64 Variance;
5381} D3DKMT_TRACKEDWORKLOAD_STATISTICS;
5383typedef struct _D3DKMT_GETTRACKEDWORKLOADSTATISTICS
5387 D3DKMT_ALIGN64
UINT64 FenceCompletedValue;
5388 D3DKMT_ALIGN64
UINT64 TimestampArray[D3DKMT_MAX_TRACKED_WORKLOAD_INSTANCE_PAIRS * 2];
5389 BOOL TimestampArrayProcessed;
5390 D3DKMT_TRACKEDWORKLOAD_STATISTICS DeadlineOffsetHundredsNS;
5391 D3DKMT_ALIGN64
UINT64 MissedDeadlines;
5392 D3DKMT_TRACKEDWORKLOADSTATEFLAGS
Flags;
5393} D3DKMT_GETTRACKEDWORKLOADSTATISTICS;
5395typedef struct _D3DKMT_RESETTRACKEDWORKLOADSTATISTICS
5399} D3DKMT_RESETTRACKEDWORKLOADSTATISTICS;
5401#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_7)
5410#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WIN8)
5428#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_0)
5496#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WIN8)
5505#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WIN8)
5533#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM1_3)
5537#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_0)
5578#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_1)
5588#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_2)
5594#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_3)
5609#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_4)
5618#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_5)
5622#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_6)
5629#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_7)
5641#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_9)
5646#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM3_0)
5652#if !defined(__REACTOS__) || (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_2)
5660#if !defined(D3DKMDT_SPECIAL_MULTIPLATFORM_TOOL)
5670#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WIN8)
5689#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_0)
5758#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WIN8)
5767#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WIN8)
5789#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM1_3)
5796#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_0)
5835#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_1)
5845#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_2)
5860#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_3)
5879#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_4)
5886#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_5)
5893#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_6)
5900#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_7)
5908#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_9)
5913#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM3_0)
5925DEFINE_GUID(GUID_DEVINTERFACE_GRAPHICSPOWER, 0xea5c6870, 0xe93c, 0x4588, 0xbe, 0xf1, 0xfe, 0xc4, 0x2f, 0xc9, 0x42, 0x9a);
5927#define IOCTL_INTERNAL_GRAPHICSPOWER_REGISTER \
5928 CTL_CODE(FILE_DEVICE_VIDEO, 0xa01, METHOD_NEITHER, FILE_ANY_ACCESS)
5930#define DXGK_GRAPHICSPOWER_VERSION_1_0 0x1000
5931#define DXGK_GRAPHICSPOWER_VERSION_1_1 0x1001
5932#define DXGK_GRAPHICSPOWER_VERSION_1_2 0x1002
5933#define DXGK_GRAPHICSPOWER_VERSION DXGK_GRAPHICSPOWER_VERSION_1_2
5938(*PDXGK_POWER_NOTIFICATION)(
5939 PVOID GraphicsDeviceHandle,
5948(*PDXGK_REMOVAL_NOTIFICATION)(
5949 PVOID GraphicsDeviceHandle,
5956(*PDXGK_FSTATE_NOTIFICATION)(
5957 PVOID GraphicsDeviceHandle,
5958 ULONG ComponentIndex,
5967(*PDXGK_INITIAL_COMPONENT_STATE) (
5968 PVOID GraphicsDeviceHandle,
5969 PVOID PrivateHandle,
5970 ULONG ComponentIndex,
5974 UINT PowerComponentMappingFlag
5978typedef struct _DXGK_GRAPHICSPOWER_REGISTER_INPUT_V_1_2 {
5980 PVOID PrivateHandle;
5981 PDXGK_POWER_NOTIFICATION PowerNotificationCb;
5982 PDXGK_REMOVAL_NOTIFICATION RemovalNotificationCb;
5983 PDXGK_FSTATE_NOTIFICATION FStateNotificationCb;
5984 PDXGK_INITIAL_COMPONENT_STATE InitialComponentStateCb;
5985} DXGK_GRAPHICSPOWER_REGISTER_INPUT_V_1_2, *PDXGK_GRAPHICSPOWER_REGISTER_INPUT_V_1_2;
5987typedef DXGK_GRAPHICSPOWER_REGISTER_INPUT_V_1_2 DXGK_GRAPHICSPOWER_REGISTER_INPUT;
5988typedef DXGK_GRAPHICSPOWER_REGISTER_INPUT *PDXGK_GRAPHICSPOWER_REGISTER_INPUT;
5994(*PDXGK_SET_SHARED_POWER_COMPONENT_STATE)(
5996 PVOID PrivateHandle,
5997 ULONG ComponentIndex,
6005(*PDXGK_GRAPHICSPOWER_UNREGISTER)(
6010typedef struct _DXGK_GRAPHICSPOWER_REGISTER_OUTPUT
6014 PDXGK_SET_SHARED_POWER_COMPONENT_STATE SetSharedPowerComponentStateCb;
6015 PDXGK_GRAPHICSPOWER_UNREGISTER UnregisterCb;
6016} DXGK_GRAPHICSPOWER_REGISTER_OUTPUT, *PDXGK_GRAPHICSPOWER_REGISTER_OUTPUT;
6018typedef enum _DXGKMT_POWER_SHARED_TYPE
6020 DXGKMT_POWER_SHARED_TYPE_AUDIO = 0,
6021} DXGKMT_POWER_SHARED_TYPE;
COMPILER_DEPENDENT_INT64 INT64
COMPILER_DEPENDENT_UINT64 UINT64
static const CHAR BiosVersion[]
_In_ ULONG _In_ BOOLEAN _In_ ULONG _In_ UCHAR _In_ UCHAR TargetId
_In_ PCHAR _In_ ULONG DeviceNumber
static VOID Wake(_In_ UCHAR Csn)
#define _IRQL_requires_max_(irql)
#define _IRQL_requires_(irql)
_Must_inspect_result_ _In_opt_ PFLT_FILTER Filter
GLuint GLuint GLsizei GLenum type
_Must_inspect_result_ _In_ USAGE _In_ USHORT _In_ USAGE Usage
static ULONG ResourceCount
_In_ BOOL _In_ HANDLE hProcess
PVOID PVOID PWCHAR PVOID USHORT PULONG Reason
static PLARGE_INTEGER Time
_In_ PIOMMU_DEVICE_PATH _In_ PIOMMU_SVM_CAPABILITIES _Out_ PVOID * DeviceHandle
_In_ ACCESS_MASK _In_opt_ POBJECT_ATTRIBUTES _In_opt_ PLARGE_INTEGER MaximumSize
_In_ HANDLE _Outptr_result_bytebuffer_ ViewSize _Pre_valid_ PVOID * BaseAddress
#define _Field_size_bytes_(s)
#define _Field_size_opt_(s)
#define _Out_writes_bytes_all_opt_(s)
#define _Out_writes_bytes_(s)
#define _Field_size_bytes_part_(s, c)
#define _In_reads_bytes_opt_(s)
_In_ ULONG _In_ ULONG Offset
_In_ ULONG _In_ ULONG _In_ ULONG Length
enum _DEVICE_POWER_STATE DEVICE_POWER_STATE
_Must_inspect_result_ _In_ KTMOBJECT_TYPE QueryType
static VIDEODISPLAYMODE DisplayMode
#define DEFINE_GUID(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8)
BOOL bPrecisePresentRegionsPreferred
D3DDDI_VIDEO_PRESENT_SOURCE_ID VidPnSourceId
UINT PartialSharedCreation
UINT PhysicallyContiguous
UINT RestrictSharedAccess
D3DKMT_HANDLE hGlobalShare
D3DKMT_CREATESTANDARDALLOCATION * pStandardAllocation
D3DKMT_CREATEALLOCATIONFLAGS Flags
UINT PrivateRuntimeDataSize
UINT PrivateDriverDataSize
HANDLE hPrivateRuntimeResourceHandle
D3DDDI_ALLOCATIONINFO * pAllocationInfo
D3DDDI_ALLOCATIONINFO2 * pAllocationInfo2
const void * pPrivateRuntimeData
const void * pPrivateDriverData
PALETTEENTRY * pColorTable
D3DDDI_PATCHLOCATIONLIST * pPatchLocationList
D3DKMT_CREATEDEVICEFLAGS Flags
D3DDDI_ALLOCATIONLIST * pAllocationList
UINT PatchLocationListSize
UINT PrivateRuntimeDataSize
D3DKMT_CREATEKEYEDMUTEX2_FLAGS Flags
void * pPrivateRuntimeData
D3DKMT_HANDLE hKeyedMutex
D3DKMT_HANDLE hSharedHandle
D3DKMT_HANDLE hKeyedMutex
D3DKMT_HANDLE hSharedHandle
D3DKMT_CREATESTANDARDALLOCATIONFLAGS Flags
D3DKMT_STANDARDALLOCATION_EXISTINGHEAP ExistingHeapData
D3DKMT_STANDARDALLOCATIONTYPE Type
D3DKMT_HANDLE hSyncObject
D3DDDI_SYNCHRONIZATIONOBJECTINFO2 Info
D3DKMT_HANDLE hSyncObject
D3DDDI_SYNCHRONIZATIONOBJECTINFO Info
D3DDDICB_DESTROYALLOCATION2FLAGS Flags
const D3DKMT_HANDLE * phAllocationList
const D3DKMT_HANDLE * phAllocationList
D3DKMT_HANDLE hKeyedMutex
D3DKMT_HANDLE hSyncObject
D3DKMT_ADAPTERINFO * pAdapters
D3DKMT_ADAPTERINFO Adapters[MAX_ENUM_ADAPTERS]
UINT PrivateDriverDataSize
void * pPrivateDriverData
const WCHAR * pDeviceName
D3DDDI_VIDEO_PRESENT_SOURCE_ID VidPnSourceId
D3DDDI_VIDEO_PRESENT_SOURCE_ID VidPnSourceId
D3DKMT_HANDLE hKeyedMutex
D3DKMT_HANDLE hSharedHandle
UINT PrivateRuntimeDataSize
void * pPrivateRuntimeData
void * pPrivateRuntimeData
UINT PrivateRuntimeDataSize
D3DKMT_HANDLE hKeyedMutex
D3DKMT_HANDLE hKeyedMutex
D3DKMT_HANDLE hSharedHandle
void * pKeyedMutexPrivateRuntimeData
D3DKMT_HANDLE hKeyedMutex
UINT ResourcePrivateDriverDataSize
UINT PrivateRuntimeDataSize
void * pPrivateRuntimeData
void * pResourcePrivateDriverData
D3DDDI_OPENALLOCATIONINFO2 * pOpenAllocationInfo2
void * pTotalPrivateDriverDataBuffer
UINT TotalPrivateDriverDataBufferSize
D3DKMT_HANDLE hSyncObject
UINT KeyedMutexPrivateRuntimeDataSize
void * pPrivateRuntimeData
UINT ResourcePrivateDriverDataSize
void * pTotalPrivateDriverDataBuffer
D3DDDI_OPENALLOCATIONINFO2 * pOpenAllocationInfo2
UINT PrivateRuntimeDataSize
D3DDDI_OPENALLOCATIONINFO * pOpenAllocationInfo
UINT TotalPrivateDriverDataBufferSize
void * pResourcePrivateDriverData
D3DKMT_HANDLE hGlobalShare
D3DKMT_HANDLE hSyncObject
D3DKMT_HANDLE hSharedHandle
D3DKMT_HANDLE hSyncObject
D3DDDI_SYNCHRONIZATIONOBJECT_FLAGS Flags
struct _D3DKMT_OPENSYNCOBJECTFROMNTHANDLE2::@4164::@4166 MonitoredFence
D3DGPU_VIRTUAL_ADDRESS FenceValueGPUVirtualAddress
void * FenceValueCPUVirtualAddress
D3DKMT_HANDLE hSyncObject
OBJECT_ATTRIBUTES * pObjAttrib
UINT PrivateDriverDataSize
VOID * pPrivateDriverData
KMTQUERYADAPTERINFOTYPE Type
UINT TotalPrivateDriverDataSize
void * pPrivateRuntimeData
UINT PrivateRuntimeDataSize
UINT ResourcePrivateDriverDataSize
UINT TotalPrivateDriverDataSize
D3DKMT_HANDLE hGlobalShare
UINT ResourcePrivateDriverDataSize
void * pPrivateRuntimeData
UINT PrivateRuntimeDataSize
ULONG64 BytesBySegmentPreference[D3DKMT_QUERYSTATISTICS_SEGMENT_PREFERENCE_MAX]
ULONG64 TotalBytesEvictedFromProcess
ULONG AllocationListBytes
D3DKMT_QUERYSTATISTICS_COUNTER Size
ULONG PatchLocationListBytes
ULONGLONG TotalBytesEvicted
ULONGLONG PreferApertureForRead[D3DKMT_MaxAllocationPriorityClass]
ULONGLONG RemovePagesFromWorkingSetOnPaging
ULONGLONG MigrationEnabled
ULONGLONG PreferAperture[D3DKMT_MaxAllocationPriorityClass]
ULONGLONG MemResetOnPaging
ULONGLONG CachedBytesReserved
ULONG LargeAllocationBlocks
ULONG SmallAllocationBlocks
ULONGLONG SectionBytesReserved
ULONGLONG WriteCombinedBytesReserved
ULONGLONG CachedBytesAllocated
ULONGLONG WriteCombinedBytesAllocated
ULONGLONG SectionBytesAllocated
ULONGLONG TotalBytesEvictedDueToPreparation
D3DKMT_QUERYSTATISTICS_COUNTER AllocsResidentInNonPreferred
D3DKMT_QUERYSTATISTICS_COUNTER AllocsResidentInP[D3DKMT_QUERYSTATISTICS_SEGMENT_PREFERENCE_MAX]
D3DKMT_QUERYSTATISTICS_QUERY_NODE QueryProcessNode
D3DKMT_QUERYSTATISTICS_QUERY_SEGMENT QuerySegment
D3DKMT_QUERYSTATISTICS_RESULT QueryResult
D3DKMT_QUERYSTATISTICS_QUERY_VIDPNSOURCE QueryProcessVidPnSource
D3DKMT_QUERYSTATISTICS_TYPE Type
D3DKMT_QUERYSTATISTICS_QUERY_NODE QueryNode
D3DKMT_QUERYSTATISTICS_QUERY_VIDPNSOURCE QueryVidPnSource
D3DKMT_QUERYSTATISTICS_QUERY_SEGMENT QueryProcessSegment
D3DKMT_QUERYSTATISTICS_COUNTER Opened
D3DKMT_QUERYSTATISTICS_COUNTER Created
D3DKMT_QUERYSTATISTICS_COUNTER MigratedAbandoned
D3DKMT_QUERYSTATISTICS_COUNTER MigratedFail
D3DKMT_QUERYSTATISTICS_COUNTER Closed
D3DKMT_QUERYSTATISTICS_COUNTER Destroyed
D3DKMT_QUERYSTATISTICS_COUNTER MigratedSuccess
ULONG NbLocksLinearization
ULONG AllocationsUnresetSuccessRead
D3DKMT_QUERYSTATISTICS_COUNTER AllocationsUnresetSuccess
D3DKMT_QUERYSTATISTICS_COUNTER EvictionsDueToPurge
D3DKMT_QUERYSTATISTICS_COUNTER EvictionsDueToLock
D3DKMT_QUERYSTATISTICS_COUNTER FaultsEvicted
D3DKMT_QUERYSTATISTICS_COUNTER Faults
D3DKMT_QUERYSTATISTICS_COUNTER Evictions
D3DKMT_QUERYSTATISTICS_COUNTER EvictionsDueToPreparation
D3DKMT_QUERYSTATISTICS_COUNTER EvictionsDueToClose
ULONG AllocationsUnresetFailRead
D3DKMT_QUERYSTATISTICS_COUNTER FaultsIncorrectResource
D3DKMT_QUERYSTATISTICS_COUNTER FaultsFirstTimeAccess
D3DKMT_QUERYSTATISTICS_COUNTER FaultsReclaimed
D3DKMT_QUERYSTATISTICS_COUNTER FaultsMigration
D3DKMT_QUERYSTATISTICS_COUNTER AllocationsUnresetFail
D3DKMT_QUERYSTATISTICS_COUNTER AllocationsMEM_RESET
D3DKMT_QUERYSTATISTICS_COUNTER FaultsLostContent
D3DKMT_QUERYSTATISTICS_COUNTER EvictionsDueToSuspendCPUAccess
ULONGLONG BytesTransferredFromApertureToMemory
ULONGLONG BytesTransferredFromMemoryToMdl
ULONGLONG BytesUnmappedFromAperture
ULONGLONG BytesMappedIntoAperture
ULONGLONG BytesTransferredFromMemoryToAperture
ULONGLONG BytesTransferredFromMdlToMemory
ULONG ImmediateHighestPreparationPass
ULONG NbDMAPreparedLongPath
D3DKMT_QUERYSTATISTICS_COUNTER AllocationsTrimmed
ULONG NbPrimariesReferencesOverflow
ULONG NbDMABufferSuccessfullyPrePatched
ULONG NbAllocationWithInvalidPrepatchingInfoReferenced
ULONG NbRenamedAllocationsReferenced
ULONG NbAllocationsReferenced
ULONG NbAllocationWithValidPrepatchingInfoReferenced
ULONG MaxNbAllocationsReferenced
ULONG NbAllocationWithNonPreferredResources
ULONG NbAllocationInsertedInMigrationTable
ULONG NbLockedAllocationReferenced
ULONG NbIterationSearchingRenamedAllocation
ULONG NbAllocationsShrinked
ULONG NbFailuresDueToCreateAllocation
ULONG NbFailuresDueToOpenAllocation
ULONG MaxRenamingListLength
ULONG NbFailuresDueToRenamingLimit
ULONG NbFailuresDueToLowResource
ULONG NbFailuresDueToNonRetiredLimit
ULONG NbAllocationsRenamed
D3DKMT_QUERYSTATISTICS_COUNTER DestroyedShared
D3DKMT_QUERYSTATISTICS_COUNTER DestroyedNonShared
D3DKMT_QUERYSTATISTICS_COUNTER TerminatedNonShared
D3DKMT_QUERYSTATISTICS_COUNTER TerminatedShared
UINT PhysicalAdapterIndex
D3DKMT_MEMORY_SEGMENT_GROUP MemorySegmentGroup
UINT64 CurrentReservation
UINT64 AvailableForReservation
D3DKMT_QUEUEDLIMIT_TYPE Type
UINT QueuedPendingFlipLimit
D3DDDI_VIDEO_PRESENT_SOURCE_ID VidPnSourceId
const D3DKMT_VIDPNSOURCEOWNER_TYPE * pType
const D3DDDI_VIDEO_PRESENT_SOURCE_ID * pVidPnSourceId
static LARGE_INTEGER Frequency
TW_UINT32 TW_UINT16 TW_UINT16 TW_MEMREF pData
struct _OBJECT_ATTRIBUTES * POBJECT_ATTRIBUTES
D3DKMT_QUERYSTATISTICS_PROCESS_VIDPNSOURCE_INFORMATION ProcessVidPnSourceInformation
D3DKMT_QUERYSTATISTICS_PROCESS_INFORMATION ProcessInformation
D3DKMT_QUERYSTATISTICS_PROCESS_SEGMENT_INFORMATION ProcessSegmentInformation
D3DKMT_QUERYSTATISTICS_NODE_INFORMATION NodeInformation
D3DKMT_QUERYSTATISTICS_PROCESS_NODE_INFORMATION ProcessNodeInformation
D3DKMT_QUERYSTATISTICS_ADAPTER_INFORMATION AdapterInformation
D3DKMT_QUERYSTATISTICS_PROCESS_ADAPTER_INFORMATION ProcessAdapterInformation
D3DKMT_QUERYSTATISTICS_VIDPNSOURCE_INFORMATION VidPnSourceInformation
D3DKMT_QUERYSTATISTICS_SEGMENT_INFORMATION SegmentInformation
_In_ HFONT _Out_ PUINT _Out_ PUINT Width
_In_ HFONT _Out_ PUINT Height
static WCHAR AdapterString[]
_Must_inspect_result_ _In_ WDFDEVICE _In_ ULONG _In_ ACCESS_MASK DesiredAccess
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_PROPERTY_DATA _In_ DEVPROPTYPE _In_ ULONG Size
_Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_opt_ PCUNICODE_STRING DeviceName
_Must_inspect_result_ _In_ WDFDEVICE _In_ LPCGUID _Out_ PINTERFACE _In_ USHORT _In_ USHORT Version
_In_ WDFINTERRUPT _In_ WDF_INTERRUPT_POLICY _In_ WDF_INTERRUPT_PRIORITY Priority
_In_ WDFINTERRUPT _In_ PFN_WDF_INTERRUPT_SYNCHRONIZE Callback
_In_ WDFINTERRUPT _In_ WDF_INTERRUPT_POLICY Policy
_Must_inspect_result_ _In_ WDFMEMORY _In_ size_t DestinationOffset
_Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_ PCUNICODE_STRING DeviceID
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING _Out_opt_ PUSHORT _Inout_opt_ PUNICODE_STRING Value
_In_ HANDLE _In_ HANDLE hLogicalSurface
_In_ HANDLE hPhysicalSurface
_Reserved_ PVOID Reserved
enum _D3DDDIFORMAT D3DDDIFORMAT
UINT D3DDDI_VIDEO_PRESENT_SOURCE_ID
_D3DKMT_QUERYSTATISTICS_TYPE
@ D3DKMT_QUERYSTATISTICS_PROCESS_VIDPNSOURCE
@ D3DKMT_QUERYSTATISTICS_NODE
@ D3DKMT_QUERYSTATISTICS_VIDPNSOURCE
@ D3DKMT_QUERYSTATISTICS_PROCESS_NODE
@ D3DKMT_QUERYSTATISTICS_ADAPTER
@ D3DKMT_QUERYSTATISTICS_PROCESS_SEGMENT
@ D3DKMT_QUERYSTATISTICS_PROCESS
@ D3DKMT_QUERYSTATISTICS_SEGMENT
@ D3DKMT_QUERYSTATISTICS_PROCESS_ADAPTER
struct _D3DKMT_DESTROYDEVICE D3DKMT_DESTROYDEVICE
NTSTATUS WINAPI D3DKMTEnumAdapters2(D3DKMT_ENUMADAPTERS2 *desc)
_D3DKMT_QUERYSTATISTICS_ALLOCATION_PRIORITY_CLASS
@ D3DKMT_AllocationPriorityClassMinimum
@ D3DKMT_AllocationPriorityClassHigh
@ D3DKMT_AllocationPriorityClassLow
@ D3DKMT_MaxAllocationPriorityClass
@ D3DKMT_AllocationPriorityClassNormal
@ D3DKMT_AllocationPriorityClassMaximum
NTSTATUS WINAPI D3DKMTCreateDevice(D3DKMT_CREATEDEVICE *desc)
enum _D3DKMT_QUERYSTATISTICS_QUEUE_PACKET_TYPE D3DKMT_QUERYSTATISTICS_QUEUE_PACKET_TYPE
NTSTATUS WINAPI D3DKMTDestroyDCFromMemory(const D3DKMT_DESTROYDCFROMMEMORY *desc)
NTSTATUS WINAPI D3DKMTQueryStatistics(D3DKMT_QUERYSTATISTICS *stats)
struct _D3DKMT_CLOSEADAPTER D3DKMT_CLOSEADAPTER
NTSTATUS WINAPI D3DKMTOpenSynchronizationObject(D3DKMT_OPENSYNCHRONIZATIONOBJECT *params)
struct _D3DKMT_QUERYSTATSTICS_TERMINATIONS D3DKMT_QUERYSTATSTICS_TERMINATIONS
struct _D3DKMT_QUERYSTATISTICS_PROCESS_SEGMENT_POLICY D3DKMT_QUERYSTATISTICS_PROCESS_SEGMENT_POLICY
_D3DKMT_MEMORY_SEGMENT_GROUP
@ D3DKMT_MEMORY_SEGMENT_GROUP_LOCAL
@ D3DKMT_MEMORY_SEGMENT_GROUP_NON_LOCAL
struct _D3DKMT_OPENSYNCHRONIZATIONOBJECT D3DKMT_OPENSYNCHRONIZATIONOBJECT
struct _D3DKMT_CHECKOCCLUSION D3DKMT_CHECKOCCLUSION
struct _D3DKMT_OPENSYNCOBJECTNTHANDLEFROMNAME D3DKMT_OPENSYNCOBJECTNTHANDLEFROMNAME
struct _D3DKMT_QUERYSTATSTICS_PAGING_FAULT D3DKMT_QUERYSTATSTICS_PAGING_FAULT
NTSTATUS WINAPI D3DKMTShareObjects(UINT count, const D3DKMT_HANDLE *handles, OBJECT_ATTRIBUTES *attr, UINT access, HANDLE *handle)
struct _D3DKMT_QUERYSTATISTICS_DMA_BUFFER D3DKMT_QUERYSTATISTICS_DMA_BUFFER
enum _KMTQUERYADAPTERINFOTYPE KMTQUERYADAPTERINFOTYPE
enum _D3DKMT_QUERYSTATISTICS_ALLOCATION_PRIORITY_CLASS D3DKMT_QUERYSTATISTICS_ALLOCATION_PRIORITY_CLASS
struct _D3DKMT_QUERYVIDEOMEMORYINFO D3DKMT_QUERYVIDEOMEMORYINFO
struct _D3DKMT_QUERYSTATSTICS_SWIZZLING_RANGE D3DKMT_QUERYSTATSTICS_SWIZZLING_RANGE
struct _D3DKMT_QUERYSTATISTICS_COUNTER D3DKMT_QUERYSTATISTICS_COUNTER
ULONGLONG D3DGPU_VIRTUAL_ADDRESS
NTSTATUS WINAPI D3DKMTOpenResource2(D3DKMT_OPENRESOURCE *params)
NTSTATUS WINAPI D3DKMTCheckVidPnExclusiveOwnership(const D3DKMT_CHECKVIDPNEXCLUSIVEOWNERSHIP *desc)
struct _D3DKMT_ESCAPE D3DKMT_ESCAPE
struct _D3DKMT_CREATEDCFROMMEMORY D3DKMT_CREATEDCFROMMEMORY
struct _D3DKMT_QUERYSTATISTICS_VIDEO_MEMORY D3DKMT_QUERYSTATISTICS_VIDEO_MEMORY
struct _D3DKMT_OPENADAPTERFROMGDIDISPLAYNAME D3DKMT_OPENADAPTERFROMGDIDISPLAYNAME
struct _D3DKMT_QUERYSTATISTICS_PROCESS_INFORMATION D3DKMT_QUERYSTATISTICS_PROCESS_INFORMATION
struct _D3DKMT_CREATESTANDARDALLOCATIONFLAGS D3DKMT_CREATESTANDARDALLOCATIONFLAGS
NTSTATUS WINAPI D3DKMTCreateKeyedMutex(D3DKMT_CREATEKEYEDMUTEX *params)
struct _D3DKMT_QUERYSTATISTICS D3DKMT_QUERYSTATISTICS
struct _D3DKMT_CREATESTANDARDALLOCATION D3DKMT_CREATESTANDARDALLOCATION
struct _D3DKMT_DESTROYKEYEDMUTEX D3DKMT_DESTROYKEYEDMUTEX
struct _D3DKMT_QUERYSTATISTICS_COMMITMENT_DATA D3DKMT_QUERYSTATISTICS_COMMITMENT_DATA
struct _D3DKMT_OPENKEYEDMUTEX2 D3DKMT_OPENKEYEDMUTEX2
enum _D3DKMT_QUERYSTATISTICS_DMA_PACKET_TYPE D3DKMT_QUERYSTATISTICS_DMA_PACKET_TYPE
struct _D3DKMT_QUERYSTATISTICS_QUEUE_PACKET_TYPE_INFORMATION D3DKMT_QUERYSTATISTICS_QUEUE_PACKET_TYPE_INFORMATION
NTSTATUS WINAPI D3DKMTOpenSyncObjectNtHandleFromName(D3DKMT_OPENSYNCOBJECTNTHANDLEFROMNAME *params)
NTSTATUS WINAPI D3DKMTCreateDCFromMemory(D3DKMT_CREATEDCFROMMEMORY *desc)
struct _D3DKMT_QUERYSTATISTICS_PREEMPTION_INFORMATION D3DKMT_QUERYSTATISTICS_PREEMPTION_INFORMATION
struct _D3DKMT_QUERYSTATISTICS_ADAPTER_INFORMATION D3DKMT_QUERYSTATISTICS_ADAPTER_INFORMATION
NTSTATUS WINAPI D3DKMTOpenKeyedMutexFromNtHandle(D3DKMT_OPENKEYEDMUTEXFROMNTHANDLE *params)
NTSTATUS WINAPI D3DKMTOpenSyncObjectFromNtHandle2(D3DKMT_OPENSYNCOBJECTFROMNTHANDLE2 *params)
enum _D3DKMT_MEMORY_SEGMENT_GROUP D3DKMT_MEMORY_SEGMENT_GROUP
struct _D3DKMT_QUERYSTATISTICS_NODE_INFORMATION D3DKMT_QUERYSTATISTICS_NODE_INFORMATION
NTSTATUS WINAPI D3DKMTSetQueuedLimit(D3DKMT_SETQUEUEDLIMIT *desc)
enum _D3DKMT_ESCAPETYPE D3DKMT_ESCAPETYPE
NTSTATUS WINAPI D3DKMTCloseAdapter(const D3DKMT_CLOSEADAPTER *desc)
struct _D3DKMT_CREATEKEYEDMUTEX2 D3DKMT_CREATEKEYEDMUTEX2
enum _D3DKMT_QUEUEDLIMIT_TYPE D3DKMT_QUEUEDLIMIT_TYPE
struct _D3DKMT_OPENKEYEDMUTEXFROMNTHANDLE D3DKMT_OPENKEYEDMUTEXFROMNTHANDLE
#define D3DKMT_QUERYSTATISTICS_SEGMENT_PREFERENCE_MAX
struct _D3DKMT_QUERYSTATISTICS_PROCESS_VIDPNSOURCE_INFORMATION D3DKMT_QUERYSTATISTICS_PROCESS_VIDPNSOURCE_INFORMATION
struct _D3DKMT_QUERYSTATISTICS_QUERY_SEGMENT D3DKMT_QUERYSTATISTICS_QUERY_SEGMENT
struct _D3DKMT_OPENRESOURCEFROMNTHANDLE D3DKMT_OPENRESOURCEFROMNTHANDLE
struct _D3DKMT_OPENRESOURCE D3DKMT_OPENRESOURCE
_D3DKMT_STANDARDALLOCATIONTYPE
@ D3DKMT_STANDARDALLOCATIONTYPE_EXISTINGHEAP
NTSTATUS WINAPI D3DKMTOpenKeyedMutex(D3DKMT_OPENKEYEDMUTEX *params)
struct _D3DKMT_QUERYSTATSTICS_ALLOCATIONS D3DKMT_QUERYSTATSTICS_ALLOCATIONS
struct _D3DKMT_CREATEKEYEDMUTEX2_FLAGS D3DKMT_CREATEKEYEDMUTEX2_FLAGS
struct _D3DKMT_DESTROYDCFROMMEMORY D3DKMT_DESTROYDCFROMMEMORY
struct _D3DKMT_CHECKVIDPNEXCLUSIVEOWNERSHIP D3DKMT_CHECKVIDPNEXCLUSIVEOWNERSHIP
struct _D3DKMT_QUERYRESOURCEINFOFROMNTHANDLE D3DKMT_QUERYRESOURCEINFOFROMNTHANDLE
union _D3DKMT_QUERYSTATISTICS_RESULT D3DKMT_QUERYSTATISTICS_RESULT
struct _D3DKMT_ENUMADAPTERS D3DKMT_ENUMADAPTERS
enum _D3DKMT_QUERYSTATISTICS_TYPE D3DKMT_QUERYSTATISTICS_TYPE
struct _D3DKMT_QUERYSTATISTICS_QUERY_VIDPNSOURCE D3DKMT_QUERYSTATISTICS_QUERY_VIDPNSOURCE
NTSTATUS WINAPI D3DKMTCreateAllocation(D3DKMT_CREATEALLOCATION *params)
struct _D3DKMT_ADAPTERINFO D3DKMT_ADAPTERINFO
struct _D3DKMT_STANDARDALLOCATION_EXISTINGHEAP D3DKMT_STANDARDALLOCATION_EXISTINGHEAP
NTSTATUS WINAPI D3DKMTQueryResourceInfoFromNtHandle(D3DKMT_QUERYRESOURCEINFOFROMNTHANDLE *params)
NTSTATUS WINAPI D3DKMTQueryAdapterInfo(D3DKMT_QUERYADAPTERINFO *desc)
struct _D3DKMT_ENUMADAPTERS2 D3DKMT_ENUMADAPTERS2
struct _D3DKMT_QUERYSTATISTICS_PROCESS_SEGMENT_INFORMATION D3DKMT_QUERYSTATISTICS_PROCESS_SEGMENT_INFORMATION
NTSTATUS WINAPI D3DKMTOpenAdapterFromLuid(D3DKMT_OPENADAPTERFROMLUID *desc)
struct _D3DKMT_SETQUEUEDLIMIT D3DKMT_SETQUEUEDLIMIT
struct _D3DKMT_CREATEDEVICEFLAGS D3DKMT_CREATEDEVICEFLAGS
_D3DKMT_QUERYSTATISTICS_DMA_PACKET_TYPE
@ D3DKMT_SystemPagingBuffer
@ D3DKMT_ClientRenderBuffer
@ D3DKMT_SystemPreemptionBuffer
@ D3DKMT_ClientPagingBuffer
@ D3DKMT_DmaPacketTypeMax
struct _D3DKMT_QUERYSTATISTICS_SEGMENT_INFORMATION D3DKMT_QUERYSTATISTICS_SEGMENT_INFORMATION
struct _D3DKMT_CREATESYNCHRONIZATIONOBJECT D3DKMT_CREATESYNCHRONIZATIONOBJECT
struct _D3DKMT_OPENSYNCOBJECTFROMNTHANDLE D3DKMT_OPENSYNCOBJECTFROMNTHANDLE
struct _D3DKMT_OPENKEYEDMUTEX D3DKMT_OPENKEYEDMUTEX
struct _D3DKMT_QUERYSTATISTICS_VIDPNSOURCE_INFORMATION D3DKMT_QUERYSTATISTICS_VIDPNSOURCE_INFORMATION
struct _D3DKMT_CREATEALLOCATIONFLAGS D3DKMT_CREATEALLOCATIONFLAGS
struct _D3DKMT_DESTROYALLOCATION2 D3DKMT_DESTROYALLOCATION2
struct _D3DKMT_QUERYSTATISTICS_PACKET_INFORMATION D3DKMT_QUERYSTATISTICS_PACKET_INFORMATION
NTSTATUS WINAPI D3DKMTCreateKeyedMutex2(D3DKMT_CREATEKEYEDMUTEX2 *params)
struct _D3DKMT_QUERYSTATISTICS_PROCESS_ADAPTER_INFORMATION D3DKMT_QUERYSTATISTICS_PROCESS_ADAPTER_INFORMATION
struct _D3DKMT_OPENSYNCOBJECTFROMNTHANDLE2 D3DKMT_OPENSYNCOBJECTFROMNTHANDLE2
struct _D3DKMT_OPENADAPTERFROMDEVICENAME D3DKMT_OPENADAPTERFROMDEVICENAME
struct _D3DKMT_CREATEDEVICE D3DKMT_CREATEDEVICE
@ KMTQAITYPE_DRIVERVERSION
@ KMTQAITYPE_DIRECTFLIP_SUPPORT
@ KMTQAITYPE_CURRENTDISPLAYMODE
@ KMTQAITYPE_ADAPTERPERFDATA_CAPS
@ KMTQAITYPE_WDDM_1_2_CAPS
@ KMTQAITYPE_PHYSICALADAPTERDEVICEIDS
@ KMTQAITYPE_QUERYREGISTRY
@ KMTQAITYPE_UMDRIVERPRIVATE
@ KMTQAITYPE_WDDM_2_7_CAPS
@ KMTQAITYPE_VIRTUALADDRESSINFO
@ KMTQAITYPE_HWDRM_SUPPORT
@ KMTQAITYPE_DRIVER_DESCRIPTION
@ KMTQAITYPE_WDDM_1_3_CAPS_RENDER
@ KMTQAITYPE_CPDRIVERNAME
@ KMTQAITYPE_SETWORKINGSETINFO
@ KMTQAITYPE_CROSSADAPTERRESOURCE_SUPPORT
@ KMTQAITYPE_FLIPQUEUEINFO
@ KMTQAITYPE_ADAPTERADDRESS_RENDER
@ KMTQAITYPE_QUERY_MIRACAST_DRIVER_TYPE
@ KMTQAITYPE_QUERY_MULTIPLANEOVERLAY_DECODE_SUPPORT
@ KMTQAITYPE_PHYSICALADAPTERPNPKEY
@ KMTQAITYPE_NODEPERFDATA
@ KMTQAITYPE_TRACKEDWORKLOAD_SUPPORT
@ KMTQAITYPE_NODEMETADATA
@ KMTQAITYPE_ADAPTERREGISTRYINFO
@ KMTQAITYPE_HYBRID_DLIST_DLL_SUPPORT
@ KMTQAITYPE_MPOKERNELCAPS_SUPPORT
@ KMTQAITYPE_PARAVIRTUALIZATION_RENDER
@ KMTQAITYPE_DRIVER_DESCRIPTION_RENDER
@ KMTQAITYPE_UMD_DRIVER_VERSION
@ KMTQAITYPE_UMDRIVERNAME
@ KMTQAITYPE_ADAPTERADDRESS
@ KMTQAITYPE_MULTIPLANEOVERLAY_SUPPORT
@ KMTQAITYPE_ADAPTERPERFDATA
@ KMTQAITYPE_BLOCKLIST_RUNTIME
@ KMTQAITYPE_WDDM_1_2_CAPS_RENDER
@ KMTQAITYPE_KMD_DRIVER_VERSION
@ KMTQAITYPE_GETSEGMENTSIZE
@ KMTQAITYPE_INDEPENDENTFLIP_SECONDARY_SUPPORT
@ KMTQAITYPE_PHYSICALADAPTERCOUNT
@ KMTQAITYPE_MIRACASTCOMPANIONDRIVERNAME
@ KMTQAITYPE_MULTIPLANEOVERLAY_SECONDARY_SUPPORT
@ KMTQAITYPE_ADAPTERTYPE_RENDER
@ KMTQAITYPE_QUERY_HW_PROTECTION_TEARDOWN_COUNT
@ KMTQAITYPE_DLIST_DRIVER_NAME
@ KMTQAITYPE_ADAPTERREGISTRYINFO_RENDER
@ KMTQAITYPE_ADAPTERGUID_RENDER
@ KMTQAITYPE_WDDM_2_9_CAPS
@ KMTQAITYPE_QUERY_GPUMMU_CAPS
@ KMTQAITYPE_DISPLAY_CAPS
@ KMTQAITYPE_WDDM_1_3_CAPS
@ KMTQAITYPE_BLOCKLIST_KERNEL
@ KMTQAITYPE_DISPLAY_UMDRIVERNAME
@ KMTQAITYPE_WDDM_3_0_CAPS
@ KMTQAITYPE_GETSEGMENTGROUPSIZE
@ KMTQAITYPE_CHECKDRIVERUPDATESTATUS
@ KMTQAITYPE_UMOPENGLINFO
@ KMTQAITYPE_PANELFITTER_SUPPORT
@ KMTQAITYPE_CHECKDRIVERUPDATESTATUS_RENDER
@ KMTQAITYPE_WDDM_2_0_CAPS
@ KMTQAITYPE_QUERY_ISBADDRIVERFORHWPROTECTIONDISABLED
@ KMTQAITYPE_QUERY_ADAPTER_UNIQUE_GUID
@ KMTQAITYPE_GET_DEVICE_VIDPN_OWNERSHIP_INFO
@ KMTQAITYPE_INDEPENDENTFLIP_SUPPORT
@ KMTQAITYPE_MPO3DDI_SUPPORT
@ KMTQAITYPE_SCANOUT_CAPS
@ KMTQAITYPE_OUTPUTDUPLCONTEXTSCOUNT
@ KMTQAITYPE_DRIVERVERSION_RENDER
@ KMTQAITYPE_MULTIPLANEOVERLAY_HUD_SUPPORT
@ KMTQAITYPE_MULTIPLANEOVERLAY_STRETCH_SUPPORT
@ KMTQAITYPE_DRIVERCAPS_EXT
NTSTATUS WINAPI D3DKMTDestroyAllocation(const D3DKMT_DESTROYALLOCATION *params)
NTSTATUS WINAPI D3DKMTCreateSynchronizationObject2(D3DKMT_CREATESYNCHRONIZATIONOBJECT2 *params)
NTSTATUS WINAPI D3DKMTOpenAdapterFromGdiDisplayName(D3DKMT_OPENADAPTERFROMGDIDISPLAYNAME *desc)
NTSTATUS WINAPI D3DKMTDestroyAllocation2(const D3DKMT_DESTROYALLOCATION2 *params)
NTSTATUS WINAPI D3DKMTCreateAllocation2(D3DKMT_CREATEALLOCATION *params)
@ D3DKMT_SET_QUEUEDLIMIT_PRESENT
@ D3DKMT_GET_QUEUEDLIMIT_PRESENT
struct _D3DKMT_QUERYSTATSTICS_PAGING_TRANSFER D3DKMT_QUERYSTATSTICS_PAGING_TRANSFER
UINT D3DDDI_VIDEO_PRESENT_TARGET_ID
NTSTATUS WINAPI D3DKMTDestroyDevice(const D3DKMT_DESTROYDEVICE *desc)
NTSTATUS WINAPI D3DKMTOpenResourceFromNtHandle(D3DKMT_OPENRESOURCEFROMNTHANDLE *params)
struct _D3DKMT_QUERYSTATSTICS_LOCKS D3DKMT_QUERYSTATSTICS_LOCKS
struct _D3DKMT_QUERYSTATISTICS_QUERY_NODE D3DKMT_QUERYSTATISTICS_QUERY_NODE
struct _D3DKMT_QUERYADAPTERINFO D3DKMT_QUERYADAPTERINFO
enum _D3DKMT_STANDARDALLOCATIONTYPE D3DKMT_STANDARDALLOCATIONTYPE
struct _D3DKMT_DESTROYSYNCHRONIZATIONOBJECT D3DKMT_DESTROYSYNCHRONIZATIONOBJECT
NTSTATUS WINAPI D3DKMTQueryVideoMemoryInfo(D3DKMT_QUERYVIDEOMEMORYINFO *desc)
NTSTATUS WINAPI D3DKMTDestroyKeyedMutex(const D3DKMT_DESTROYKEYEDMUTEX *params)
struct _D3DKMT_QUERYSTATISTICS_DMA_PACKET_TYPE_INFORMATION D3DKMT_QUERYSTATISTICS_DMA_PACKET_TYPE_INFORMATION
@ D3DKMT_ESCAPE_DRIVERPRIVATE
@ D3DKMT_ESCAPE_DEBUG_SNAPSHOT
@ D3DKMT_ESCAPE_TDRDBGCTRL
@ D3DKMT_ESCAPE_DIAGNOSTICS
#define MAX_ENUM_ADAPTERS
struct _D3DKMT_DESTROYALLOCATION D3DKMT_DESTROYALLOCATION
NTSTATUS WINAPI D3DKMTDestroySynchronizationObject(const D3DKMT_DESTROYSYNCHRONIZATIONOBJECT *params)
enum _D3DKMT_VIDPNSOURCEOWNER_TYPE D3DKMT_VIDPNSOURCEOWNER_TYPE
struct _D3DKMT_SETVIDPNSOURCEOWNER D3DKMT_SETVIDPNSOURCEOWNER
NTSTATUS WINAPI D3DKMTEscape(const D3DKMT_ESCAPE *desc)
struct _D3DKMT_QUERYSTATSTICS_PREPRATION D3DKMT_QUERYSTATSTICS_PREPRATION
struct _D3DKMT_QUERYSTATISTICS_MEMORY D3DKMT_QUERYSTATISTICS_MEMORY
struct _D3DKMT_QUERYSTATISTICS_POLICY D3DKMT_QUERYSTATISTICS_POLICY
struct _D3DKMT_OPENADAPTERFROMHDC D3DKMT_OPENADAPTERFROMHDC
struct _D3DKMT_QUERYSTATSTICS_REFERENCE_DMA_BUFFER D3DKMT_QUERYSTATSTICS_REFERENCE_DMA_BUFFER
_D3DKMT_QUERYRESULT_PREEMPTION_ATTEMPT_RESULT
@ D3DKMT_PreemptionAttemptMissNoCommand
@ D3DKMT_PreemptionAttemptMissFenceCommand
@ D3DKMT_PreemptionAttemptMissRemainingQuantum
@ D3DKMT_PreemptionAttemptMissAlreadyPreempting
@ D3DKMT_PreemptionAttemptMissNextFence
@ D3DKMT_PreemptionAttemptMissPagingCommand
@ D3DKMT_PreemptionAttemptMissSplittedCommand
@ D3DKMT_PreemptionAttemptMissRenderPendingFlip
@ D3DKMT_PreemptionAttemptSuccess
@ D3DKMT_PreemptionAttemptMissLessPriority
@ D3DKMT_PreemptionAttemptMissAlreadyRunning
@ D3DKMT_PreemptionAttemptMissGlobalBlock
@ D3DKMT_PreemptionAttemptMissNotEnabled
@ D3DKMT_PreemptionAttemptMissRemainingPreemptionQuantum
@ D3DKMT_PreemptionAttempt
@ D3DKMT_PreemptionAttemptStatisticsMax
@ D3DKMT_PreemptionAttemptMissNotMakingProgress
struct _D3DKMT_CREATEKEYEDMUTEX D3DKMT_CREATEKEYEDMUTEX
_D3DKMT_VIDPNSOURCEOWNER_TYPE
@ D3DKMT_VIDPNSOURCEOWNER_EMULATED
@ D3DKMT_VIDPNSOURCEOWNER_UNOWNED
@ D3DKMT_VIDPNSOURCEOWNER_EXCLUSIVEGDI
@ D3DKMT_VIDPNSOURCEOWNER_EXCLUSIVE
@ D3DKMT_VIDPNSOURCEOWNER_SHARED
struct _D3DKMT_QUERYSTATSTICS_RENAMING D3DKMT_QUERYSTATSTICS_RENAMING
NTSTATUS WINAPI D3DKMTOpenSyncObjectFromNtHandle(D3DKMT_OPENSYNCOBJECTFROMNTHANDLE *params)
struct _D3DKMT_QUERYSTATISTICS_SYSTEM_MEMORY D3DKMT_QUERYSTATISTICS_SYSTEM_MEMORY
struct _D3DKMT_QUERYRESOURCEINFO D3DKMT_QUERYRESOURCEINFO
struct _D3DKMT_CREATESYNCHRONIZATIONOBJECT2 D3DKMT_CREATESYNCHRONIZATIONOBJECT2
NTSTATUS WINAPI D3DKMTOpenAdapterFromHdc(D3DKMT_OPENADAPTERFROMHDC *desc)
NTSTATUS WINAPI D3DKMTSetVidPnSourceOwner(const D3DKMT_SETVIDPNSOURCEOWNER *desc)
_D3DKMT_QUERYSTATISTICS_QUEUE_PACKET_TYPE
@ D3DKMT_DeferredCommandBuffer
@ D3DKMT_MmIoFlipCommandBuffer
@ D3DKMT_SignalCommandBuffer
@ D3DKMT_SystemCommandBuffer
@ D3DKMT_QueuePacketTypeMax
@ D3DKMT_RenderCommandBuffer
@ D3DKMT_WaitCommandBuffer
@ D3DKMT_DeviceCommandBuffer
@ D3DKMT_SoftwareCommandBuffer
struct _D3DKMT_OPENADAPTERFROMLUID D3DKMT_OPENADAPTERFROMLUID
NTSTATUS WINAPI D3DKMTQueryResourceInfo(D3DKMT_QUERYRESOURCEINFO *params)
struct _D3DKMT_QUERYSTATISTICS_PROCESS_NODE_INFORMATION D3DKMT_QUERYSTATISTICS_PROCESS_NODE_INFORMATION
struct _D3DKMT_CREATEALLOCATION D3DKMT_CREATEALLOCATION
NTSTATUS WINAPI D3DKMTCreateSynchronizationObject(D3DKMT_CREATESYNCHRONIZATIONOBJECT *params)
NTSTATUS WINAPI D3DKMTOpenResource(D3DKMT_OPENRESOURCE *params)
NTSTATUS WINAPI D3DKMTOpenKeyedMutex2(D3DKMT_OPENKEYEDMUTEX2 *params)
enum _D3DKMT_QUERYRESULT_PREEMPTION_ATTEMPT_RESULT D3DKMT_QUERYRESULT_PREEMPTION_ATTEMPT_RESULT
_Must_inspect_result_ _In_ ULONG Flags
_In_opt_ PUNICODE_STRING _In_ PDRIVER_OBJECT _In_ PDEVICE_OBJECT _In_ INTERFACE_TYPE BusType
_In_ USHORT _In_ UCHAR _In_ USHORT _In_ USHORT SubSystemID
_In_ USHORT _In_ UCHAR RevisionID
_In_ USHORT _In_ UCHAR _In_ USHORT SubVendorID
_In_ ULONG _In_ BOOLEAN Active