structure DMA_IOMMU_INTERFACE_V2 (wdm.h)

Structure contenant l’ensemble des fonctions IOMMU Version 2 (V2).

Syntaxe

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;

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 l’équilibrage de charge de charge pour toutes les entrées qui correspondent à ce domaine.

FlushDomainByVaList

Pointeur vers la fonction IOMMU_FLUSH_DOMAIN_VA_LIST qui vide l’équilibrage de charge des tâches 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 trouver des ID de mappage d’entrée valides pour l’appareil donné et de 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é à attacher, en fonction de 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’un changement d’état lié à 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 un IOMMU_DMA_DEVICE.

Configuration requise

Condition requise Valeur
Serveur minimal pris en charge Windows Server 2022
En-tête wdm.h (inclure Wdm.h)

Voir aussi

DMA_IOMMU_INTERFACE_EX