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
このドメインに一致するすべてのエントリの TLB をフラッシュする IOMMU_FLUSH_DOMAIN 関数へのポインター。
FlushDomainByVaList
指定したドメインの ASID と一致するすべてのエントリの TLB をフラッシュする IOMMU_FLUSH_DOMAIN_VA_LIST 関数へのポインターと、指定されたリスト内のいずれかのアドレス。
QueryInputMappings
指定されたデバイスに対して有効な入力マッピング ID を検索し、指定されたバッファーにそれらの ID を設定しようとする IOMMU_QUERY_INPUT_MAPPINGS 関数へのポインター。
MapLogicalRangeEx
指定したドメインのアドレス空間にページの範囲をマップする IOMMU_MAP_LOGICAL_RANGE_EX 関数へのポインター。
UnmapLogicalRange
ページの範囲のマップを解除する IOMMU_UNMAP_LOGICAL_RANGE 関数へのポインター。
MapIdentityRangeEx
指定されたドメイン内の指定された物理アドレスの ID マッピングを作成する IOMMU_MAP_IDENTITY_RANGE_EX 関数へのポインター。
UnmapIdentityRangeEx
指定した物理アドレスの ID マッピングを削除する IOMMU_UNMAP_IDENTITY_RANGE_EX 関数へのポインター。
SetDeviceFaultReportingEx
既にドメインに接続されているデバイスのデバイス 障害報告状態を設定する IOMMU_SET_DEVICE_FAULT_REPORTING_EX 関数へのポインター。
ConfigureDomain
使用するドメインを構成する IOMMU_DOMAIN_CONFIGURE 関数へのポインター。
QueryAvailableDomainTypes
プラットフォームや DMA Guard ポリシーなどの環境要因に応じて、デバイスがアタッチできるドメインの使用可能な種類を照会する IOMMU_DEVICE_QUERY_DOMAIN_TYPES 関数へのポインター。
RegisterInterfaceStateChangeCallback
IOMMU インターフェイスに関連する状態変更が発生するたびに呼び出されるコールバックを呼び出し元が登録できるようにする IOMMU_REGISTER_INTERFACE_STATE_CHANGE_CALLBACK 関数へのポインター。
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_DMA_DEVICEを作成する IOMMU_DEVICE_CREATE 関数へのポインター。
DeleteDevice
IOMMU_DMA_DEVICEを削除する IOMMU_DEVICE_DELETE 関数へのポインター。
必要条件
要件 | 価値 |
---|---|
サポートされる最小サーバー | Windows Server 2022 |
ヘッダー | wdm.h (Wdm.h を含む) |