DMA_IOMMU_INTERFACE_V2 structure (wdm.h)
A structure containing the set of IOMMU Version 2 (V2) functions.
Syntax
typedef struct _DMA_IOMMU_INTERFACE_V2 {
PIOMMU_DOMAIN_CREATE_EX CreateDomainEx;
PIOMMU_DOMAIN_DELETE DeleteDomain;
PIOMMU_DOMAIN_ATTACH_DEVICE_EX AttachDeviceEx;
PIOMMU_DOMAIN_DETACH_DEVICE_EX DetachDeviceEx;
PIOMMU_FLUSH_DOMAIN FlushDomain;
PIOMMU_FLUSH_DOMAIN_VA_LIST FlushDomainByVaList;
PIOMMU_QUERY_INPUT_MAPPINGS QueryInputMappings;
PIOMMU_MAP_LOGICAL_RANGE_EX MapLogicalRangeEx;
PIOMMU_UNMAP_LOGICAL_RANGE UnmapLogicalRange;
PIOMMU_MAP_IDENTITY_RANGE_EX MapIdentityRangeEx;
PIOMMU_UNMAP_IDENTITY_RANGE_EX UnmapIdentityRangeEx;
PIOMMU_SET_DEVICE_FAULT_REPORTING_EX SetDeviceFaultReportingEx;
PIOMMU_DOMAIN_CONFIGURE ConfigureDomain;
PIOMMU_DEVICE_QUERY_DOMAIN_TYPES QueryAvailableDomainTypes;
PIOMMU_REGISTER_INTERFACE_STATE_CHANGE_CALLBACK RegisterInterfaceStateChangeCallback;
PIOMMU_UNREGISTER_INTERFACE_STATE_CHANGE_CALLBACK UnregisterInterfaceStateChangeCallback;
PIOMMU_RESERVE_LOGICAL_ADDRESS_RANGE ReserveLogicalAddressRange;
PIOMMU_FREE_RESERVED_LOGICAL_ADDRESS_RANGE FreeReservedLogicalAddressRange;
PIOMMU_MAP_RESERVED_LOGICAL_RANGE MapReservedLogicalRange;
PIOMMU_UNMAP_RESERVED_LOGICAL_RANGE UnmapReservedLogicalRange;
PIOMMU_DEVICE_CREATE CreateDevice;
PIOMMU_DEVICE_DELETE DeleteDevice;
} DMA_IOMMU_INTERFACE_V2, *PDMA_IOMMU_INTERFACE_V2;
Members
CreateDomainEx
A pointer to the IOMMU_DOMAIN_CREATE_EX function that creates a DMA remapping device domain.
DeleteDomain
A pointer to the IOMMU_DOMAIN_DELETE function that deletes a device domain.
AttachDeviceEx
A pointer to the IOMMU_DOMAIN_ATTACH_DEVICE_EX function that attaches a device to a domain.
DetachDeviceEx
A pointer to the IOMMU_DOMAIN_DETACH_DEVICE_EX function that detaches a device from a domain.
FlushDomain
A pointer to the IOMMU_FLUSH_DOMAIN function that flushes the TLB for all entries which match this domain.
FlushDomainByVaList
A 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.
QueryInputMappings
A 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.
MapLogicalRangeEx
A pointer to the IOMMU_MAP_LOGICAL_RANGE_EX function that maps a range of pages into the address space of the specified domain.
UnmapLogicalRange
A pointer to the IOMMU_UNMAP_LOGICAL_RANGE function that unmaps a range of pages.
MapIdentityRangeEx
A pointer to the IOMMU_MAP_IDENTITY_RANGE_EX function that creates an identity mapping for the provided physical address in the provided domain.
UnmapIdentityRangeEx
A pointer to the IOMMU_UNMAP_IDENTITY_RANGE_EX function that deletes an identity mapping for the specified physical address.
SetDeviceFaultReportingEx
A pointer to the IOMMU_SET_DEVICE_FAULT_REPORTING_EX function that sets the device fault reporting state on a device already attached to a domain.
ConfigureDomain
A pointer to the IOMMU_DOMAIN_CONFIGURE function that configures a domain for use.
QueryAvailableDomainTypes
A pointer to the IOMMU_DEVICE_QUERY_DOMAIN_TYPES function that queries for the available types of domains that a device is allowed to attach to, depending on environment factors, such as platform and the DMA Guard policy.
RegisterInterfaceStateChangeCallback
A pointer to the IOMMU_REGISTER_INTERFACE_STATE_CHANGE_CALLBACK function that allows the caller to register a callback to be invoked whenever any state change related to the IOMMU interface occurs.
UnregisterInterfaceStateChangeCallback
A pointer to the IOMMU_UNREGISTER_INTERFACE_STATE_CHANGE_CALLBACK function that allows the caller to deregister a registered callback.
ReserveLogicalAddressRange
A pointer to the IOMMU_RESERVE_LOGICAL_ADDRESS_RANGE function that preallocates logical address space that can be used for future mappings.
FreeReservedLogicalAddressRange
A pointer to the IOMMU_FREE_RESERVED_LOGICAL_ADDRESS_RANGE function that frees a logical address token.
MapReservedLogicalRange
A pointer to the IOMMU_MAP_RESERVED_LOGICAL_RANGE function that maps a reserved logical range.
UnmapReservedLogicalRange
A pointer to the IOMMU_UNMAP_RESERVED_LOGICAL_RANGE function that unmaps a previously mapped reserved logical range.
CreateDevice
A pointer to the IOMMU_DEVICE_CREATE function that takes a physical device object and creates an IOMMU_DMA_DEVICE.
DeleteDevice
A pointer to the IOMMU_DEVICE_DELETE function that deletes an IOMMU_DMA_DEVICE.
Requirements
Requirement | Value |
---|---|
Minimum supported server | Windows Server 2022 |
Header | wdm.h (include Wdm.h) |