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