Partager via


structure DMA_IOMMU_INTERFACE_V3 (wdm.h)

La structure DMA_IOMMU_INTERFACE_V3 contient l’ensemble de fonctions IOMMU Version 3 (V3).

Syntaxe

typedef struct _DMA_IOMMU_INTERFACE_V3 {
  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;
  PIOMMU_PASID_DEVICE_CREATE                        CreatePasidDevice;
  PIOMMU_PASID_DEVICE_DELETE                        DeletePasidDevice;
  PIOMMU_DOMAIN_ATTACH_PASID_DEVICE                 AttachPasidDevice;
  PIOMMU_DOMAIN_DETACH_PASID_DEVICE                 DetachPasidDevice;
  PIOMMU_DEVICE_QUERY_INFORMATION                   QueryDeviceInfo;
} DMA_IOMMU_INTERFACE_V3, *PDMA_IOMMU_INTERFACE_V3;

Membres

CreateDomainEx

Pointeur vers la fonction IOMMU_DOMAIN_CREATE_EX qui crée un domaine d’appareil de remapping DMA.

DeleteDomain

Pointeur vers la fonction IOMMU_DOMAIN_DELETE qui supprime un domaine d’appareil.

AttachDeviceEx

Pointeur vers la fonction IOMMU_DOMAIN_ATTACH_DEVICE_EX qui attache un appareil à un domaine.

DetachDeviceEx

Pointeur vers la fonction IOMMU_DOMAIN_DETACH_DEVICE_EX qui détache un appareil d’un domaine.

FlushDomain

Pointeur vers la fonction IOMMU_FLUSH_DOMAIN qui vide le TLB pour toutes les entrées qui correspondent à ce domaine.

FlushDomainByVaList

Pointeur vers la fonction IOMMU_FLUSH_DOMAIN_VA_LIST qui vide le TLB pour toutes les entrées qui correspondent à l’ASID du domaine spécifié et à l’une des adresses de la liste fournie.

QueryInputMappings

Pointeur vers la fonction IOMMU_QUERY_INPUT_MAPPINGS qui tente de rechercher des ID de mappage d’entrée valides pour l’appareil donné et remplir la mémoire tampon fournie avec ces ID.

MapLogicalRangeEx

Pointeur vers la fonction IOMMU_MAP_LOGICAL_RANGE_EX qui mappe une plage de pages dans l’espace d’adressage du domaine spécifié.

UnmapLogicalRange

Pointeur vers la fonction IOMMU_UNMAP_LOGICAL_RANGE qui annule le mappage d’une plage de pages.

MapIdentityRangeEx

Pointeur vers la fonction IOMMU_MAP_IDENTITY_RANGE_EX qui crée un mappage d’identité pour l’adresse physique fournie dans le domaine fourni.

UnmapIdentityRangeEx

Pointeur vers la fonction IOMMU_UNMAP_IDENTITY_RANGE_EX qui supprime un mappage d’identité pour l’adresse physique spécifiée.

SetDeviceFaultReportingEx

Pointeur vers la fonction IOMMU_SET_DEVICE_FAULT_REPORTING_EX qui définit l’état de rapport d’erreur de l’appareil sur un appareil déjà attaché à un domaine.

ConfigureDomain

Pointeur vers la fonction IOMMU_DOMAIN_CONFIGURE qui configure un domaine à utiliser.

QueryAvailableDomainTypes

Pointeur vers la fonction IOMMU_DEVICE_QUERY_DOMAIN_TYPES qui interroge les types de domaines disponibles auxquels un appareil est autorisé à s’attacher, en fonction des facteurs d’environnement, tels que la plateforme et la stratégie DMA Guard.

RegisterInterfaceStateChangeCallback

Pointeur vers la fonction IOMMU_REGISTER_INTERFACE_STATE_CHANGE_CALLBACK qui permet à l’appelant d’inscrire un rappel à appeler chaque fois qu’une modification d’état liée à l’interface IOMMU se produit.

UnregisterInterfaceStateChangeCallback

Pointeur vers la fonction IOMMU_UNREGISTER_INTERFACE_STATE_CHANGE_CALLBACK qui permet à l’appelant de désinscrire un rappel inscrit.

ReserveLogicalAddressRange

Pointeur vers la fonction IOMMU_RESERVE_LOGICAL_ADDRESS_RANGE qui préalloue l’espace d’adressage logique qui peut être utilisé pour les mappages futurs.

FreeReservedLogicalAddressRange

Pointeur vers la fonction IOMMU_FREE_RESERVED_LOGICAL_ADDRESS_RANGE qui libère un jeton d’adresse logique.

MapReservedLogicalRange

Pointeur vers la fonction IOMMU_MAP_RESERVED_LOGICAL_RANGE qui mappe une plage logique réservée.

UnmapReservedLogicalRange

Pointeur vers la fonction IOMMU_UNMAP_RESERVED_LOGICAL_RANGE qui annule le mappage d’une plage logique réservée précédemment mappée.

CreateDevice

Pointeur vers la fonction IOMMU_DEVICE_CREATE qui prend un objet d’appareil physique et crée un IOMMU_DMA_DEVICE.

DeleteDevice

Pointeur vers la fonction IOMMU_DEVICE_DELETE qui supprime une IOMMU_DMA_DEVICE.

CreatePasidDevice

Pointeur vers la fonction IOMMU_PASID_DEVICE_CREATE qui crée un sous-appareil avec son propre PASID à partir d’un appareil DMA IOMMU.

DeletePasidDevice

Pointeur vers la fonction IOMMU_PASID_DEVICE_DELETE qui supprime un sous-appareil PASID et libère son ASID.

AttachPasidDevice

Pointeur vers la fonction IOMMU_DOMAIN_ATTACH_PASID_DEVICE qui attache un sous-appareil PASID à un domaine de mémoire existant.

DetachPasidDevice

Pointeur vers la fonction IOMMU_DOMAIN_DETACH_PASID_DEVICE qui détache un sous-appareil PASID du domaine auquel il est actuellement attaché.

QueryDeviceInfo

Pointeur vers la fonction IOMMU_DEVICE_QUERY_INFORMATION qui interroge des informations sur un appareil DMA IOMMU.

Remarques

Cette structure étend DMA_IOMMU_INTERFACE_V2 avec des fonctions de prise en charge pasID (identificateur d’espace d’adressage de processus). L’interface V3 inclut toutes les fonctions de V2 ainsi que de nouvelles fonctionnalités pour la création et la gestion de sous-appareils PASID et l’interrogation des informations sur l’appareil.

Spécifications

Besoin Valeur
Client minimum requis Windows 11, version 22H2
En-tête wdm.h (include Wdm.h)

Voir aussi

DMA_IOMMU_INTERFACE_V2

DMA_IOMMU_INTERFACE_EX

IOMMU_PASID_DEVICE_CREATE

IOMMU_PASID_DEVICE_DELETE

IOMMU_DOMAIN_ATTACH_PASID_DEVICE

IOMMU_DOMAIN_DETACH_PASID_DEVICE

IOMMU_DEVICE_QUERY_INFORMATION