// wdm.h
typedef struct _DMA_IOMMU_INTERFACE_V1 {
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_V1, *PDMA_IOMMU_INTERFACE_V1;
View the official Windows Driver Kit DDI referenceNo description available.
A structure containing the set of IOMMU Version 1 (V1) functions.
CreateDomainA pointer to the IOMMU_DOMAIN_CREATE function that creates a DMA remapping device domain.
DeleteDomainA pointer to the IOMMU_DOMAIN_DELETE function that deletes a device domain.
AttachDeviceA pointer to the IOMMU_DOMAIN_ATTACH_DEVICE function that attaches a device to a domain.
DetachDeviceA pointer to the IOMMU_DOMAIN_ATTACH_DEVICE function that detaches a device from a domain.
FlushDomainA pointer to the IOMMU_FLUSH_DOMAIN function that flushes the TLB for all entries which match this domain.
FlushDomainByVaListA pointer to the IOMMU_FLUSH_DOMAIN_VA_LIST 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 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 function that maps a range of pages into the address space of the specified domain.
UnmapLogicalRangeA pointer to the IOMMU_UNMAP_LOGICAL_RANGE function that unmaps a range of pages.
MapIdentityRangeA pointer to the IOMMU_MAP_IDENTITY_RANGE function that creates an identity mapping for the provided MDL in the specified domain.
UnmapIdentityRangeA pointer to the IOMMU_UNMAP_IDENTITY_RANGE function that deletes an identity mapping.
SetDeviceFaultReportingA pointer to the IOMMU_SET_DEVICE_FAULT_REPORTING function that sets the device fault reporting state to device already attached to a domain.
ConfigureDomainA pointer to the IOMMU_DOMAIN_CONFIGURE function that configures a domain for use.
These function pointers are the same as those provided by the deprecated DMA_IOMMU_INTERFACE structure. For V1 functions, use the DMA_IOMMU_INTERFACE_EX structure over the deprecated one.