Condividi tramite


struttura DMA_IOMMU_INTERFACE_V3 (wdm.h)

La struttura DMA_IOMMU_INTERFACE_V3 contiene il set di funzioni IOMMU versione 3 (V3).

Sintassi

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;

Membri

CreateDomainEx

Puntatore alla funzione IOMMU_DOMAIN_CREATE_EX che crea un dominio del dispositivo DMA di cui viene ricreato il mapping.

DeleteDomain

Puntatore alla funzione IOMMU_DOMAIN_DELETE che elimina un dominio del dispositivo.

AttachDeviceEx

Puntatore alla funzione IOMMU_DOMAIN_ATTACH_DEVICE_EX che collega un dispositivo a un dominio.

DetachDeviceEx

Puntatore alla funzione IOMMU_DOMAIN_DETACH_DEVICE_EX che scollega un dispositivo da un dominio.

FlushDomain

Puntatore alla funzione IOMMU_FLUSH_DOMAIN che scarica il TLB per tutte le voci che corrispondono a questo dominio.

FlushDomainByVaList

Puntatore alla funzione IOMMU_FLUSH_DOMAIN_VA_LIST che scarica il TLB per tutte le voci che corrispondono all'ASID del dominio specificato e a uno degli indirizzi nell'elenco fornito.

QueryInputMappings

Puntatore alla funzione IOMMU_QUERY_INPUT_MAPPINGS che tenta di trovare gli ID di mapping di input validi per il dispositivo specificato e popolano il buffer fornito con tali ID.

MapLogicalRangeEx

Puntatore alla funzione IOMMU_MAP_LOGICAL_RANGE_EX che esegue il mapping di un intervallo di pagine nello spazio indirizzi del dominio specificato.

UnmapLogicalRange

Puntatore alla funzione IOMMU_UNMAP_LOGICAL_RANGE che annulla il mapping di un intervallo di pagine.

MapIdentityRangeEx

Puntatore alla funzione IOMMU_MAP_IDENTITY_RANGE_EX che crea un mapping di identità per l'indirizzo fisico specificato nel dominio specificato.

UnmapIdentityRangeEx

Puntatore alla funzione IOMMU_UNMAP_IDENTITY_RANGE_EX che elimina un mapping di identità per l'indirizzo fisico specificato.

SetDeviceFaultReportingEx

Puntatore alla funzione IOMMU_SET_DEVICE_FAULT_REPORTING_EX che imposta lo stato di segnalazione degli errori del dispositivo in un dispositivo già collegato a un dominio.

ConfigureDomain

Puntatore alla funzione IOMMU_DOMAIN_CONFIGURE che configura un dominio da usare.

QueryAvailableDomainTypes

Puntatore alla funzione IOMMU_DEVICE_QUERY_DOMAIN_TYPES che esegue una query per i tipi di domini disponibili a cui un dispositivo può connettersi, a seconda dei fattori di ambiente, ad esempio la piattaforma e i criteri di DMA Guard.

RegisterInterfaceStateChangeCallback

Puntatore alla funzione IOMMU_REGISTER_INTERFACE_STATE_CHANGE_CALLBACK che consente al chiamante di registrare un callback da richiamare ogni volta che si verifica una modifica dello stato correlata all'interfaccia IOMMU.

UnregisterInterfaceStateChangeCallback

Puntatore alla funzione IOMMU_UNREGISTER_INTERFACE_STATE_CHANGE_CALLBACK che consente al chiamante di annullare la registrazione di un callback registrato.

ReserveLogicalAddressRange

Puntatore alla funzione IOMMU_RESERVE_LOGICAL_ADDRESS_RANGE che prealloca lo spazio indirizzi logico che può essere usato per i mapping futuri.

FreeReservedLogicalAddressRange

Puntatore alla funzione IOMMU_FREE_RESERVED_LOGICAL_ADDRESS_RANGE che libera un token di indirizzo logico.

MapReservedLogicalRange

Puntatore alla funzione IOMMU_MAP_RESERVED_LOGICAL_RANGE che esegue il mapping di un intervallo logico riservato.

UnmapReservedLogicalRange

Puntatore alla funzione IOMMU_UNMAP_RESERVED_LOGICAL_RANGE che annulla il mapping di un intervallo logico riservato mappato in precedenza.

CreateDevice

Puntatore alla funzione IOMMU_DEVICE_CREATE che accetta un oggetto dispositivo fisico e crea un IOMMU_DMA_DEVICE.

DeleteDevice

Puntatore alla funzione IOMMU_DEVICE_DELETE che elimina un IOMMU_DMA_DEVICE.

CreatePasidDevice

Puntatore alla funzione IOMMU_PASID_DEVICE_CREATE che crea un nuovo sotto-dispositivo con il proprio PASID da un dispositivo IOMMU DMA.

DeletePasidDevice

Puntatore alla funzione IOMMU_PASID_DEVICE_DELETE che elimina un sotto-dispositivo PASID e libera il relativo ASID.

AttachPasidDevice

Puntatore alla funzione IOMMU_DOMAIN_ATTACH_PASID_DEVICE che collega un sotto-dispositivo PASID a un dominio di memoria esistente.

DetachPasidDevice

Puntatore alla funzione IOMMU_DOMAIN_DETACH_PASID_DEVICE che scollega un sotto-dispositivo PASID dal dominio a cui è attualmente collegato.

QueryDeviceInfo

Puntatore alla funzione IOMMU_DEVICE_QUERY_INFORMATION che esegue query su informazioni su un dispositivo IOMMU DMA.

Osservazioni:

Questa struttura estende DMA_IOMMU_INTERFACE_V2 con funzioni di supporto PASID (Process Address Space Identifier) aggiuntive. L'interfaccia V3 include tutte le funzioni della versione 2 e le nuove funzionalità per la creazione e la gestione di sotto-dispositivi PASID ed esecuzione di query sulle informazioni sul dispositivo.

Requisiti

Requisito Valore
Client minimo supportato Windows 11, versione 22H2
Intestazione wdm.h (include Wdm.h)

Vedere anche

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