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)

另请参阅

DMA_IOMMU_INTERFACE_EX