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) |