x64 / ntdllntoskrnl /

_EXT_IOMMU_FUNCTION_TABLE

← 10.0.28000.3231 7 builds latest →
struct _EXT_IOMMU_FUNCTION_TABLE {
long (*ConfigureSettings)(struct _EXT_IOMMU*, struct _EXT_IOMMU_SETTINGS*);/* 0x0 8 */
long (*Initialize)(struct _EXT_IOMMU*, unsigned long, unsigned char, unsigned char);/* 0x8 8 */
long (*AllocateDomain)(struct _EXT_IOMMU*, struct _EXT_IOMMU_DOMAIN*, struct _EXT_IOMMU_DOMAIN*, void*);/* 0x10 8 */
void (*FreeDomain)(struct _EXT_IOMMU*, struct _EXT_IOMMU_DOMAIN*, void*);/* 0x18 8 */
long (*CreateDevice)(struct _EXT_IOMMU*, struct _EXT_IOMMU_DEVICE_ID*, union _EXT_IOMMU_CREATE_DEVICE_FLAGS, void*, struct _EXT_IOMMU_DEVICE**, void*);/* 0x20 8 */
void (*DeleteDevice)(struct _EXT_IOMMU*, struct _EXT_IOMMU_DEVICE*, void*);/* 0x28 8 */
unsigned char (*OwnDevice)(struct _EXT_IOMMU*, struct _EXT_IOMMU_DEVICE_ID*);/* 0x30 8 */
void (*ConfigureDeviceFaultReporting)(struct _EXT_IOMMU*, struct _EXT_IOMMU_DEVICE*, unsigned char);/* 0x38 8 */
/* ── cacheline 1 boundary (64 bytes) ── */
long (*AttachDeviceDomain)(struct _EXT_IOMMU*, struct _EXT_IOMMU_DEVICE*, struct _EXT_IOMMU_DOMAIN*, void*);/* 0x40 8 */
void (*DetachDeviceDomain)(struct _EXT_IOMMU*, struct _EXT_IOMMU_DEVICE*, void*);/* 0x48 8 */
void (*FlushDomainTb)(struct _EXT_IOMMU*, struct _EXT_IOMMU_DOMAIN*, struct _EXT_IOMMU_FLUSH_CONTEXT*, unsigned, struct _KTB_FLUSH_VA*);/* 0x50 8 */
void (*SyncFlush)(struct _EXT_IOMMU*, struct _EXT_IOMMU_FLUSH_CONTEXT*);/* 0x58 8 */
void (*CompleteFlush)(struct _EXT_IOMMU*, struct _EXT_IOMMU_FLUSH_CONTEXT*);/* 0x60 8 */
long (*AllocateRemappingTableEntry)(void*, unsigned long, unsigned long, unsigned long, unsigned short, unsigned char, unsigned char, unsigned long, struct _EXT_IOMMU_DEVICE_ID*);/* 0x68 8 */
long (*FreeRemappingTableEntry)(void*, unsigned long, unsigned long);/* 0x70 8 */
unsigned char (*UpdateRemappingTableEntry)(void*, unsigned char, unsigned long, struct _INTERRUPT_LINE_STATE*);/* 0x78 8 */
/* ── cacheline 2 boundary (128 bytes) ── */
void (*InvalidateRemappingTableEntry)(void*, unsigned long);/* 0x80 8 */
void (*UpdateRemappingDestination)(void*, unsigned char, unsigned long*, unsigned long*, unsigned long);/* 0x88 8 */
void (*CaptureGlobalCrashdumpState)(void*);/* 0x90 8 */
};
size 152 (0x98)19 members0 holespadding 03 cachelines
Used in (2)