DXGK_IOMMU_CAPS structure (d3dkmddi.h)

The DXGK_IOMMU_CAPS structure is used to indicate whether a driver supports IOMMU linear remapping.

Syntax

typedef struct _DXGK_IOMMU_CAPS {
  union {
    struct {
      UINT32 IommuIsolationSupported : 1;
      UINT32 IommuIsolationRequired : 1;
      UINT32 DmaRemappingSupported : 1;
      UINT32 Reserved : 29;
    };
    UINT32 Value;
  };
} DXGK_IOMMU_CAPS;

Members

IommuIsolationSupported

Indicates that the driver supports IOMMU isolation, and fully utilizes the IOMMU callback API to map driver-allocated memory objects to the IOMMU domain. This field mimics DXGK_DRIVERCAPS.MemoryManagementCaps.IOMMUSecureModeSupported. Dxgkrnl expects these capabilities to match.

IommuIsolationRequired

Indicates that the IOMMU is required for the hardware to function correctly and safely. If an IOMMU is not present on the system or a domain cannot be attached to the device, the device will not start. This field mimics DXGK_DRIVERCAPS.MemoryManagementCaps.IOMMUSecureModeRequired. Dxgkrnl expects these capabilities to match.

DmaRemappingSupported

Indicates that linear remapping is supported by the driver, and not just the 1:1 mappings used for standard isolation. If multiple linked physical adapters have different values for their highest visible address, the driver should report the minimum value of all physical adapters.

Reserved

Reserved; do not use.

Value

An alternative method to access the bits.

Remarks

The driver fills in this structure when Dxgkrnl calls DxgkDdiQueryAdapterInfo with a DXGK_QUERYADAPTERINFOTYPE value of DXGKQAITYPE_IOMMU_CAPS. Dxgkrnl will call DxgkDdiQueryAdapterInfo after DxgkddiAddDevice has been called for all physical adapters, but before DxgkddiStartDevice. The driver is expected to know about all linked physical adapters at this time.

To indicate logical DMA remapping support, the driver must also fill in DXGK_PHYSICAL_MEMORY_CAPS accordingly.

For more information, see IOMMU DMA remapping.

Requirements

Requirement Value
Minimum supported server Windows Server 2022
Header d3dkmddi.h

See also

DXGK_PHYSICAL_MEMORY_CAPS

DXGK_QUERYADAPTERINFOTYPE

DXGK_VIDMMCAPS

DxgkddiAddDevice

DxgkDdiQueryAdapterInfo

DxgkddiStartDevice