DXGK_QUERYADAPTERINFOTYPE enumeration (d3dkmddi.h)

The DXGK_QUERYADAPTERINFOTYPE enumeration indicates the type of information to retrieve when a display miniport driver's DxgkDdiQueryAdapterInfo function is called.

Syntax

typedef enum _DXGK_QUERYADAPTERINFOTYPE {
  DXGKQAITYPE_UMDRIVERPRIVATE = 0,
  DXGKQAITYPE_DRIVERCAPS = 1,
  DXGKQAITYPE_QUERYSEGMENT = 2,
  DXGKQAITYPE_RESERVED = 3,
  DXGKQAITYPE_QUERYSEGMENT2 = 4,
  DXGKQAITYPE_QUERYSEGMENT3 = 5,
  DXGKQAITYPE_NUMPOWERCOMPONENTS = 6,
  DXGKQAITYPE_POWERCOMPONENTINFO = 7,
  DXGKQAITYPE_PREFERREDGPUNODE = 8,
  DXGKQAITYPE_POWERCOMPONENTPSTATEINFO = 9,
  DXGKQAITYPE_HISTORYBUFFERPRECISION = 10,
  DXGKQAITYPE_QUERYSEGMENT4 = 11,
  DXGKQAITYPE_SEGMENTMEMORYSTATE = 12,
  DXGKQAITYPE_GPUMMUCAPS = 13,
  DXGKQAITYPE_PAGETABLELEVELDESC = 14,
  DXGKQAITYPE_PHYSICALADAPTERCAPS = 15,
  DXGKQAITYPE_DISPLAY_DRIVERCAPS_EXTENSION = 16,
  DXGKQAITYPE_INTEGRATED_DISPLAY_DESCRIPTOR = 17,
  DXGKQAITYPE_UEFIFRAMEBUFFERRANGES = 18,
  DXGKQAITYPE_QUERYCOLORIMETRYOVERRIDES = 19,
  DXGKQAITYPE_DISPLAYID_DESCRIPTOR = 20,
  DXGKQAITYPE_FRAMEBUFFERSAVESIZE = 21,
  DXGKQAITYPE_HARDWARERESERVEDRANGES = 22,
  DXGKQAITYPE_INTEGRATED_DISPLAY_DESCRIPTOR2 = 23,
  DXGKQAITYPE_NODEPERFDATA = 24,
  DXGKQAITYPE_ADAPTERPERFDATA = 25,
  DXGKQAITYPE_ADAPTERPERFDATA_CAPS = 26,
  DXGKQAITYPE_GPUVERSION = 27,
  DXGKQAITYPE_DEVICE_TYPE_CAPS = 28,
  DXGKQAITYPE_WDDMDEVICECAPS = 29,
  DXGKQAITYPE_GPUPCAPS = 30,
  DXGKQAITYPE_QUERYTARGETGAMMACAPS = 31,
  DXGKQAITYPE_SCANOUT_CAPS = 33,
  DXGKQAITYPE_PHYSICAL_MEMORY_CAPS = 34,
  DXGKQAITYPE_IOMMU_CAPS = 35,
  DXGKQAITYPE_HARDWARERESERVEDRANGES2,
  DXGKQAITYPE_NATIVE_FENCE_CAPS,
  DXGKQAITYPE_USERMODESUBMISSION_CAPS
} DXGK_QUERYADAPTERINFOTYPE;

Constants

 
DXGKQAITYPE_UMDRIVERPRIVATE
Value: 0
Indicates a private, proprietary-defined data structure for the display driver.
DXGKQAITYPE_DRIVERCAPS
Value: 1
The display miniport driver should populate a DXGK_DRIVERCAPS structure with its driver capabilities.
DXGKQAITYPE_QUERYSEGMENT
Value: 2
The display miniport driver should populate a DXGK_QUERYSEGMENTOUT structure with its memory-segment information.
DXGKQAITYPE_RESERVED
Value: 3
Reserved for system use. Do not use in your driver. This constant occurs starting in Windows 7.
DXGKQAITYPE_QUERYSEGMENT2
Value: 4
Reserved for system use. Do not use in your driver. This constant occurs starting in Windows 7.
DXGKQAITYPE_QUERYSEGMENT3
Value: 5
The display miniport driver should populate a DXGK_QUERYSEGMENTOUT3 structure with memory-segment information. Supported starting in Windows 8.
DXGKQAITYPE_NUMPOWERCOMPONENTS
Value: 6
The display miniport should provide a UINT value that specifies the number of power components that it uses. Supported starting in Windows 8.
DXGKQAITYPE_POWERCOMPONENTINFO
Value: 7
The display miniport driver should populate a DXGK_POWER_RUNTIME_COMPONENT structure with information about the nth power component, where n is the component index specified by DXGKARG_QUERYADAPTERINFO.pInputData in a call to DxgkDdiQueryAdapterInfo. Supported starting in Windows 8.
DXGKQAITYPE_PREFERREDGPUNODE
Value: 8
Reserved for system use. Do not use in your driver. This constant occurs starting in Windows 8.
DXGKQAITYPE_POWERCOMPONENTPSTATEINFO
Value: 9
Reserved for system use. Do not use in your driver. Supported starting in Windows 8.1.
DXGKQAITYPE_HISTORYBUFFERPRECISION
Value: 10
The display miniport driver should populate a DXGKARG_HISTORYBUFFERPRECISION structure with information about the precision of history buffer data that it uses. Supported starting in Windows 8.1.
DXGKQAITYPE_QUERYSEGMENT4
Value: 11
The display miniport driver should populate a DXGK_QUERYSEGMENTOUT4 structure to indicate its memory-segment information. Supported starting in Windows 10.
DXGKQAITYPE_SEGMENTMEMORYSTATE
Value: 12
The display miniport driver should populate a DXGK_MEMORYRANGE structure with its bad memory ranges. Supported starting in Windows 10.
DXGKQAITYPE_GPUMMUCAPS
Value: 13
The display miniport driver should populate a DXGK_GPUMMUCAPS structure with its virtual memory management capabilities. Supported starting in Windows 10.
DXGKQAITYPE_PAGETABLELEVELDESC
Value: 14
Reserved for system use. Do not use in your driver. This constant occurs starting in Windows 10.
DXGKQAITYPE_PHYSICALADAPTERCAPS
Value: 15
Reserved for system use. Do not use in your driver. This constant occurs starting in Windows 10.
DXGKQAITYPE_DISPLAY_DRIVERCAPS_EXTENSION
Value: 16
Reserved for system use. Do not use in your driver. This constant occurs starting in Windows 10.
DXGKQAITYPE_INTEGRATED_DISPLAY_DESCRIPTOR
Value: 17
Supported starting in Windows 10, version 1703. Indicates a request for an integrated panel descriptor where the input buffer to the query will be a DXGK_QUERYINTEGRATEDDISPLAYIN structure and the output buffer is a DXGK_QUERYINTEGRATEDDISPLAYOUT structure.

Although this function addresses a target, only DxgKrnl adapter locks are taken over this call, not child device locks. In practice, since this call will be made before the child device is exposed, there should be no concurrent DDI calls which address the same target.

NOTE: Unlike most QueryAdapterInfo calls, the output buffer size is variable although it is still known in advance from the DescriptorLength field of the DXGK_INTEGRATED_DISPLAY_CHILD structure for the target id. The size of the output buffer is:
DescriptorLength + FIELD_OFFSET( DXGK_QUERYINTEGRATEDDISPLAYOUT, Descriptor ).
DXGKQAITYPE_UEFIFRAMEBUFFERRANGES
Value: 18
Indicates request for the UEFI frame buffer ranges. Supported starting in Windows 10, version 1703.
DXGKQAITYPE_QUERYCOLORIMETRYOVERRIDES
Value: 19
Supported starting in Windows 10, version 1703. Indicates a request for colorimetry overrides for an external display, where the input buffer to the query will be a DXGK_QUERYCOLORIMETRYOVERRIDESIN structure, containing only the target id being addressed and the output buffer is a DXGK_COLORIMETRY structure into which the driver writes overrides for the monitor attached to the target.

Although this function addresses a target, only DxgKrnl adapter locks are taken over this call, not child device locks. Since this call will be made before the child device is exposed, there should be no concurrent DDI calls which address the same target.

The output buffer is zeroed when passed to the driver. If the driver has no overrides for the monitor, it should return STATUS_SUCCESS and leave the output buffer zeroed. If the driver has overrides, it fill in all fields of the DXGK_COLORIMETRY to describe the monitor capabilities as the OS will not accept partial overrides.
DXGKQAITYPE_DISPLAYID_DESCRIPTOR
Value: 20
Indicates a request for an integrated panel descriptor where the input buffer to the query will be a DXGK_QAITARGETIN structure and the output buffer is a DXGK_QUERYINTEGRATEDDISPLAYOUT structure. Supported starting in Windows 10, version 1709.
DXGKQAITYPE_FRAMEBUFFERSAVESIZE
Value: 21
The display miniport driver should populate a DXGK_FRAMEBUFFERSAVEAREA structure with the size of the frame buffer to save to system memory during power transitions. Supported starting in Windows 10, version 1803.
DXGKQAITYPE_HARDWARERESERVEDRANGES
Value: 22
The display miniport driver should populate a DXGK_HARDWARERESERVEDRANGES structure with its hardware reserved memory ranges. Supported starting in Windows 10, version 1803.
DXGKQAITYPE_INTEGRATED_DISPLAY_DESCRIPTOR2
Value: 23
Supported starting in Windows 10, version 1803. Indicates a request for an integrated panel descriptor where the input buffer to the query will be a DXGK_QAITARGETIN structure and the output buffer is a DXGK_QUERYINTEGRATEDDISPLAYOUT2 structure. This query replaces use of the DXGKQAITYPE_INTEGRATED_DISPLAY_DESCRIPTOR query for WDDM 2.4 drivers.

TypeIntegratedDisplay child devices are reported by calling DxgkDdiQueryAdapterInfo with the Type set to this value.
DXGKQAITYPE_NODEPERFDATA
Value: 24
The display miniport driver should populate a DXGK_NODE_PERFDATA structure that represents performance data collected per engine from an adapter on an interval basis. Supported starting in Windows 10, version 1803.
DXGKQAITYPE_ADAPTERPERFDATA
Value: 25
The display miniport driver should populate a DXGK_ADAPTER_PERFDATA structure that represents performance data collected per adapter on an interval basis. Supported starting in Windows 10, version 1803.
DXGKQAITYPE_ADAPTERPERFDATA_CAPS
Value: 26
The display miniport driver should populate a DXGK_ADAPTER_PERFDATACAPS structure that represents data capabilities that are static and queried once per GPU during initialization. Supported starting in Windows 10, version 1803.
DXGKQAITYPE_GPUVERSION
Value: 27
The display miniport driver should populate a DXGK_GPUVERSION structure used to collect the BIOS version and GPU architecture name once during GPU initialization. Supported starting in Windows 10, version 1803.
DXGKQAITYPE_DEVICE_TYPE_CAPS
Value: 28
The display miniport driver should populate a DXGK_DEVICE_TYPE_CAPS structure that describes the type of capabilities for a device. Supported starting in Windows 10, version 1809.
DXGKQAITYPE_WDDMDEVICECAPS
Value: 29
The display miniport driver should populate a DXGK_WDDMDEVICECAPS structure that contains the WDDM capabilities that are queried by the OS during device initialization. Supported starting in Windows 10, version 1903.
DXGKQAITYPE_GPUPCAPS
Value: 30
The display miniport driver should populate a DXGK_GPUPCAPS structure that contains the GPU capabilities for a kernel mode display driver. Supported starting in Windows 10, version 1903.
DXGKQAITYPE_QUERYTARGETGAMMACAPS
Value: 31
The display miniport driver should populate a DXGK_TARGET_GAMMA_CAPS structure that describes the gamma capabilities of the display miniport driver. Supported starting in Windows 10, version 1903.
DXGKQAITYPE_SCANOUT_CAPS
Value: 33
The display miniport driver should populate a DXGK_QUERY_SCANOUT_CAPS_OUT structure that describes the scanout capabilities of the driver. Supported starting in Windows 10, version 1903.
DXGKQAITYPE_PHYSICAL_MEMORY_CAPS
Value: 34
The display miniport driver should populate a DXGK_PHYSICAL_MEMORY_CAPS structure that describes the physical memory restrictions (the highest visible physical address) of the device. Supported starting in Windows Server 2022 (WDDM 2.9).

See DXGKQAITYPE_IOMMU_CAPS for details on how to indicate driver support for IOMMU linear remapping.
DXGKQAITYPE_IOMMU_CAPS
Value: 35
The display miniport driver should populate a DXGK_IOMMU_CAPS structure that indicates that IOMMU linear remapping is supported by the driver. Supported starting in Windows Server 2022 (WDDM 2.9). To indicate support for linear remapping, the driver must also inform Dxgkernel about its physical memory restrictions through the DXGKQAITYPE_PHYSICAL_MEMORY_CAPS cap.

Logical remapping can only be done if no existing physical memory is referenced by the device, so Dxgkrnl's call sequence is as follows:

* Call DxgkDdiAddDevice for all physical adapters, so that the driver can gather information for all linked physical adapters.

* Call DxgkDdiQueryAdapterInfo with DXGKQAITYPE_PHYSICAL_MEMORY_CAPS and DXGKQAITYPE_IOMMU_CAPS so that it can then create and attach the device to an IOMMU domain before any memory can be accessed.

* Call DxgkDdiStartDevice to start the device.

Remarks

Dxgkrnl calls the display miniport driver's DxgkDdiQueryAdapterInfo callback to retrieve configuration information from the graphics adapter. The driver fills the requested information in the buffer pointed to by the pOutputData member of the DXGKARG_QUERYADAPTERINFO structure. See each enumeration value for the type of structure to fill in.

Requirements

Requirement Value
Minimum supported client Windows Vista
Header d3dkmddi.h (include D3dkmddi.h)

See also

DXGKARG_QUERYADAPTERINFO

DxgkDdiQueryAdapterInfo