// wdm.h
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;
View the official Windows Driver Kit DDI referenceNo description available.
An extended version of the INTERFACE structure that allows device drivers to invoke the callback functions that perform device domain operations.
[!CAUTION]
DMA_IOMMU_INTERFACEhas been deprecated in Windows 10, version 2103 and has been replaced by DMA_IOMMU_INTERFACE_EX.
VersionThe driver-defined interface version.
CreateDomainA pointer to the IOMMU_DOMAIN_CREATE callback function that creates a DMA remapping device domain.
DeleteDomainA pointer to the IOMMU_DOMAIN_DELETE callback function that deletes a device domain.
AttachDeviceA pointer to the IOMMU_DOMAIN_ATTACH_DEVICE callback function that attaches a device to a domain.
DetachDeviceA pointer to the IOMMU_DOMAIN_DETACH_DEVICE callback function that detaches a device from a domain.
ConfigureDomainA pointer to the IOMMU_DOMAIN_CONFIGURE callback function that configures a domain for use.
FlushDomainA pointer to the IOMMU_FLUSH_DOMAIN callback function that flushes the TLB for all entries which match this domain.
FlushDomainByVaListA 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.
QueryInputMappingsA 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.
MapLogicalRangeA pointer to the IOMMU_MAP_LOGICAL_RANGE callback function that maps a range of pages into the address space of the specified domain.
UnmapLogicalRangeA pointer to the IOMMU_UNMAP_LOGICAL_RANGE callback function that unmaps a range of pages.
MapIdentityRangeA pointer to the IOMMU_MAP_IDENTITY_RANGE callback function that creates an identity mapping for the provided MDL in the specified domain.
UnmapIdentityRangeA pointer to the IOMMU_UNMAP_IDENTITY_RANGE callback function that deletes an identity mapping.
SetDeviceFaultReportingA pointer to the IOMMU_SET_DEVICE_FAULT_REPORTING callback function that sets the device fault reporting state to device already attached to a domain.