//0xb8 bytes (sizeof)
struct _EXT_IOMMU_FUNCTION_TABLE_EXTENDED
{
UCHAR (*FindDevice)(VOID* arg1, struct
_EXT_IOMMU_DEVICE_ID* arg2, UCHAR arg3, struct
_EXT_IOMMU_OUTPUT_MAPPING* arg4); //0x0
LONG (*SetDeviceSvmCapabilities)(VOID* arg1, ULONGLONG arg2, UCHAR arg3); //0x8
VOID (*SetDevicePasidTable)(VOID* arg1, ULONGLONG arg2, struct
_IOMMU_PASID_TABLE_OBJECT* arg3); //0x10
LONG (*GrowPasidTable)(VOID* arg1, struct
_IOMMU_PASID_TABLE_OBJECT* arg2, ULONG arg3); //0x18
LONG (*SetPasidAddressSpace)(VOID* arg1, struct
_IOMMU_PASID_TABLE_OBJECT* arg2, ULONG arg3, ULONGLONG arg4); //0x20
VOID (*FlushTb)(VOID* arg1, ULONG arg2, ULONG arg3, struct
_LIST_ENTRY* arg4, ULONG arg5, struct
_KTB_FLUSH_VA* arg6); //0x28
VOID (*FlushDeviceTbOnly)(VOID* arg1, ULONGLONG arg2, ULONG arg3); //0x30
VOID (*DismissPageFault)(VOID* arg1, VOID* arg2, LONG arg3, UCHAR arg4, struct
_IOMMU_PAGE_FAULT_PRIVATE_DATA* arg5); //0x38
ULONG (*GetPageFault)(VOID* arg1, VOID* arg2, ULONG* arg3, ULONGLONG* arg4, WCHAR* arg5, struct
_IOMMU_PAGE_FAULT_PRIVATE_DATA* arg6, VOID** arg7, ULONGLONG* arg8); //0x40
LONG (*SetMessageInterruptRouting)(VOID* arg1, UCHAR arg2, union
_LARGE_INTEGER arg3, ULONG arg4); //0x48
VOID (*EnableInterrupt)(VOID* arg1); //0x50
VOID (*DisableInterrupt)(VOID* arg1); //0x58
UCHAR (*HandleInterrupt)(VOID* arg1); //0x60
UCHAR (*CheckForReservedRegion)(struct
_EXT_IOMMU_DEVICE_ID* arg1); //0x68
VOID (*MarkHiberRegions)(VOID* arg1, VOID* arg2, struct
_LIST_ENTRY* arg3); //0x70
VOID (*DrainSvmPageRequests)(VOID* arg1, ULONGLONG arg2, ULONG arg3); //0x78
VOID (*CancelPageRequests)(VOID* arg1, ULONGLONG arg2, ULONG arg3); //0x80
LONG (*EnumerateReservedDevices)(VOID* arg1, ULONG* arg2, struct
_IOMMU_RESERVED_DEVICE** arg3); //0x88
LONG (*ProcessReservedDomains)(VOID* arg1, ULONG arg2, struct
_IOMMU_RESERVED_DEVICE** arg3); //0x90
LONG (*QueryAcpiDeviceMapping)(VOID* arg1, struct
_EXT_IOMMU_DEVICE_ID* arg2, struct
_EXT_IOMMU_DEVICE_ID* arg3); //0x98
ULONG (*GetRidAcpiMapCount)(VOID* arg1, struct
_EXT_IOMMU_DEVICE_ID* arg2); //0xa0
VOID (*FreePasidTable)(VOID* arg1, struct
_IOMMU_PASID_TABLE_OBJECT* arg2, VOID* arg3); //0xa8
LONG (*ConfigureAts)(VOID* arg1, ULONGLONG arg2, UCHAR arg3); //0xb0
};