DMA_IOMMU_INTERFACE_V2 结构 (wdm.h)
包含 IOMMU 版本 2 (V2) 函数集的结构。
语法
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;
成员
CreateDomainEx
指向创建 DMA 重新映射设备域 的 IOMMU_DOMAIN_CREATE_EX 函数的指针。
DeleteDomain
指向删除设备域的 IOMMU_DOMAIN_DELETE 函数的指针。
AttachDeviceEx
指向将设备附加到域 的 IOMMU_DOMAIN_ATTACH_DEVICE_EX 函数的指针。
DetachDeviceEx
指向从域分离设备的 IOMMU_DOMAIN_DETACH_DEVICE_EX 函数的指针。
FlushDomain
指向 IOMMU_FLUSH_DOMAIN 函数的指针,该函数刷新与此域匹配的所有条目的 TLB。
FlushDomainByVaList
指向 IOMMU_FLUSH_DOMAIN_VA_LIST 函数的指针,该函数刷新与指定域的 ASID 和所提供的列表中的某个地址匹配的所有条目的 TLB。
QueryInputMappings
指向 IOMMU_QUERY_INPUT_MAPPINGS 函数的指针,该函数尝试查找对给定设备有效的输入映射 ID,并使用这些 ID 填充提供的缓冲区。
MapLogicalRangeEx
指向 IOMMU_MAP_LOGICAL_RANGE_EX 函数的指针,该函数将一系列页面映射到指定域的地址空间中。
UnmapLogicalRange
指向取消映射页面范围的 IOMMU_UNMAP_LOGICAL_RANGE 函数的指针。
MapIdentityRangeEx
指向 IOMMU_MAP_IDENTITY_RANGE_EX 函数的指针,该函数为提供的域中提供的物理地址创建标识映射。
UnmapIdentityRangeEx
指向 IOMMU_UNMAP_IDENTITY_RANGE_EX 函数的指针,用于删除指定物理地址的标识映射。
SetDeviceFaultReportingEx
指向 IOMMU_SET_DEVICE_FAULT_REPORTING_EX 函数的指针,该函数在已附加到域的设备上设置设备故障报告状态。
ConfigureDomain
指向配置域以供使用的 IOMMU_DOMAIN_CONFIGURE 函数的指针。
QueryAvailableDomainTypes
指向 IOMMU_DEVICE_QUERY_DOMAIN_TYPES 函数的指针,该函数根据环境因素(如平台和 DMA 防护策略)查询允许设备附加到的可用域类型。
RegisterInterfaceStateChangeCallback
指向 IOMMU_REGISTER_INTERFACE_STATE_CHANGE_CALLBACK 函数的指针,它允许调用方在发生与 IOMMU 接口相关的任何状态更改时注册要调用的回调。
UnregisterInterfaceStateChangeCallback
指向 IOMMU_UNREGISTER_INTERFACE_STATE_CHANGE_CALLBACK 函数的指针,该函数允许调用方取消注册已注册的回调。
ReserveLogicalAddressRange
指向 IOMMU_RESERVE_LOGICAL_ADDRESS_RANGE 函数的指针,该函数预先分配可用于将来映射的逻辑地址空间。
FreeReservedLogicalAddressRange
指向释放逻辑地址令牌的 IOMMU_FREE_RESERVED_LOGICAL_ADDRESS_RANGE 函数的指针。
MapReservedLogicalRange
指向映射保留逻辑范围的 IOMMU_MAP_RESERVED_LOGICAL_RANGE 函数的指针。
UnmapReservedLogicalRange
指向取消映射以前映射的保留逻辑范围的 IOMMU_UNMAP_RESERVED_LOGICAL_RANGE 函数的指针。
CreateDevice
指向 IOMMU_DEVICE_CREATE 函数的指针,该函数采用物理设备对象并创建 IOMMU_DMA_DEVICE。
DeleteDevice
指向删除 IOMMU_DMA_DEVICE的 IOMMU_DEVICE_DELETE 函数 的指针。
要求
要求 | 值 |
---|---|
最低受支持的服务器 | Windows Server 2022 |
标头 | wdm.h (包括 Wdm.h) |