//0x50 bytes (sizeof)
struct _IOMMU_BUS_INTERFACE
{
    USHORT Size;                                                            //0x0
    USHORT Version;                                                         //0x2
    VOID* Context;                                                          //0x8
    VOID (*InterfaceReference)(VOID* arg1);                                 //0x10
    VOID (*InterfaceDereference)(VOID* arg1);                               //0x18
    LONG (*GetSvmCapabilities)(VOID* arg1, union
 _IOMMU_SVM_CAPABILITIES* arg2); //0x20
    LONG (*EnableSvmCapabilities)(VOID* arg1, union
 _IOMMU_SVM_CAPABILITIES* arg2, LONG (*arg3)(struct
 _DEVICE_OBJECT* arg1, enum
 _DEVICE_POWER_STATE arg2, VOID* arg3), VOID* arg4); //0x28
    LONG (*DisableSvmCapabilities)(VOID* arg1, union
 _IOMMU_SVM_CAPABILITIES* arg2); //0x30
    LONG (*GetDeviceProperties)(VOID* arg1, union
 _IOMMU_DEVICE_PROPERTIES* arg2); //0x38
    LONG (*GetDeviceId)(VOID* arg1, ULONGLONG arg2, struct
 _EXT_IOMMU_DEVICE_ID* arg3, ULONGLONG* arg4); //0x40
    struct
 _DEVICE_OBJECT* (*GetRootDevice)(VOID* arg1);                    //0x48
};