struct _HAL_IOMMU_DISPATCH { unsigned char (*HalIommuSupportEnabled)(void);/* 0x0 8 */ long (*HalIommuGetConfiguration)(unsigned long, unsigned long*, unsigned long*, void**);/* 0x8 8 */ long (*HalIommuGetLibraryContext)(unsigned long, unsigned long, unsigned char, void**);/* 0x10 8 */ long (*HalIommuMapDevice)(void*, struct _EXT_IOMMU_DEVICE_ID*, struct _DEVICE_OBJECT*, union _IOMMU_SVM_CAPABILITIES*, void**);/* 0x18 8 */ long (*HalIommuEnableDevicePasid)(void*, void*);/* 0x20 8 */ long (*HalIommuSetAddressSpace)(void*, unsigned __int64);/* 0x28 8 */ long (*HalIommuDisableDevicePasid)(void*, void*);/* 0x30 8 */ long (*HalIommuUnmapDevice)(void*, void*);/* 0x38 8 */ /* ── cacheline 1 boundary (64 bytes) ── */ long (*HalIommuFreeLibraryContext)(void*);/* 0x40 8 */ void (*HalIommuFlushTb)(void*, unsigned long, struct _KTB_FLUSH_VA*);/* 0x48 8 */ void (*HalIommuFlushAllPasid)(void*, unsigned long, struct _KTB_FLUSH_VA*);/* 0x50 8 */ unsigned char (*HalIommuProcessPageRequestQueue)(unsigned long);/* 0x58 8 */ void (*HalIommuFaultRoutine)(unsigned long);/* 0x60 8 */ void* (*HalIommuReferenceAsid)(unsigned long);/* 0x68 8 */ void (*HalIommuDereferenceAsid)(unsigned long);/* 0x70 8 */ long (*HalIommuServicePageFault)(unsigned __int64, void*, unsigned long);/* 0x78 8 */ /* ── cacheline 2 boundary (128 bytes) ── */ long (*HalIommuDevicePowerChange)(void*, void*, unsigned char);/* 0x80 8 */ long (*HalIommuBeginDeviceReset)(void*, unsigned long*);/* 0x88 8 */ long (*HalIommuFinalizeDeviceReset)(void*);/* 0x90 8 */ long (*HalIommuGetAtsSettings)(struct _EXT_IOMMU_DEVICE_ID*, union _IOMMU_ATS_SETTINGS*);/* 0x98 8 */ long (*HalIommuCreateAtsDevice)(struct _EXT_IOMMU_DEVICE_ID*, struct _DEVICE_OBJECT*, union _IOMMU_SVM_CAPABILITIES*, void**);/* 0xa0 8 */ void (*HalIommuDeleteAtsDevice)(void*);/* 0xa8 8 */ long (*HalIommuGetDomainTransitionSupport)(struct _EXT_IOMMU_DEVICE_ID*, unsigned char*);/* 0xb0 8 */ long (*HalIommuSetDeviceMpam)(struct _IOMMU_DMA_DEVICE*, unsigned short, unsigned char);/* 0xb8 8 */ /* ── cacheline 3 boundary (192 bytes) ── */ long (*HalIommuGetDeviceMpam)(struct _IOMMU_DMA_DEVICE*, unsigned short*, unsigned char*);/* 0xc0 8 */ void (*HalIommuShutdownSvm)(void);/* 0xc8 8 */};size 208 (0xd0)26 members0 holespadding 04 cachelines
Used in (0)