Note

Access to this page requires authorization. You can try signing in or .

Access to this page requires authorization. You can try .

DMA_IOMMU_INTERFACE structure (wdm.h)

An extended version of the INTERFACE structure that allows device drivers to invoke the callback functions that perform device domain operations.

Caution

DMA_IOMMU_INTERFACE has been deprecated in Windows 10, version 2103 and has been replaced by DMA_IOMMU_INTERFACE_EX.

Syntax

typedef struct _DMA_IOMMU_INTERFACE {
 ULONG Version;
 PIOMMU_DOMAIN_CREATE CreateDomain;
 PIOMMU_DOMAIN_DELETE DeleteDomain;
 PIOMMU_DOMAIN_ATTACH_DEVICE AttachDevice;
 PIOMMU_DOMAIN_DETACH_DEVICE DetachDevice;
 PIOMMU_FLUSH_DOMAIN FlushDomain;
 PIOMMU_FLUSH_DOMAIN_VA_LIST FlushDomainByVaList;
 PIOMMU_QUERY_INPUT_MAPPINGS QueryInputMappings;
 PIOMMU_MAP_LOGICAL_RANGE MapLogicalRange;
 PIOMMU_UNMAP_LOGICAL_RANGE UnmapLogicalRange;
 PIOMMU_MAP_IDENTITY_RANGE MapIdentityRange;
 PIOMMU_UNMAP_IDENTITY_RANGE UnmapIdentityRange;
 PIOMMU_SET_DEVICE_FAULT_REPORTING SetDeviceFaultReporting;
 PIOMMU_DOMAIN_CONFIGURE ConfigureDomain;
} DMA_IOMMU_INTERFACE, *PDMA_IOMMU_INTERFACE;

Members

Version

The driver-defined interface version.

CreateDomain

A pointer to the IOMMU_DOMAIN_CREATE callback function that creates a DMA remapping device domain.

DeleteDomain

A pointer to the IOMMU_DOMAIN_DELETE callback function that deletes a device domain.

AttachDevice

A pointer to the IOMMU_DOMAIN_ATTACH_DEVICE callback function that attaches a device to a domain.

DetachDevice

A pointer to the IOMMU_DOMAIN_DETACH_DEVICE callback function that detaches a device from a domain.

FlushDomain

A pointer to the IOMMU_FLUSH_DOMAIN callback function that flushes the TLB for all entries which match this domain.

FlushDomainByVaList

A pointer to the IOMMU_FLUSH_DOMAIN_VA_LIST callback function that flushes the TLB for all entries that match the specified domain's ASID and one of the addresses in the provided list.

QueryInputMappings

A pointer to the IOMMU_QUERY_INPUT_MAPPINGS callback function that attempts to find input mapping IDs which are valid for the given device and populate the provided buffer with those IDs.

MapLogicalRange

A pointer to the IOMMU_MAP_LOGICAL_RANGE callback function that maps a range of pages into the address space of the specified domain.

UnmapLogicalRange

A pointer to the IOMMU_UNMAP_LOGICAL_RANGE callback function that unmaps a range of pages.

MapIdentityRange

A pointer to the IOMMU_MAP_IDENTITY_RANGE callback function that creates an identity mapping for the provided MDL in the specified domain.

UnmapIdentityRange

A pointer to the IOMMU_UNMAP_IDENTITY_RANGE callback function that deletes an identity mapping.

SetDeviceFaultReporting

A pointer to the IOMMU_SET_DEVICE_FAULT_REPORTING callback function that sets the device fault reporting state to device already attached to a domain.

ConfigureDomain

A pointer to the IOMMU_DOMAIN_CONFIGURE callback function that configures a domain for use.

Requirements

Requirement Value
Minimum supported client Windows 10, version 1803
Header wdm.h

Feedback

Was this page helpful?

Additional resources