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
머리글 wdm.h(Wdm.h 포함)

추가 정보

DMA_IOMMU_INTERFACE_EX