次の方法で共有


DMA_IOMMU_INTERFACE_V2 構造体 (wdm.h)

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
Header wdm.h (Wdm.h を含む)

こちらもご覧ください

DMA_IOMMU_INTERFACE_EX