x64arm64 / ntdllntoskrnl

_EXT_IOMMU_FUNCTION_TABLE

← first 1 build 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 (*PrepareForReboot)(struct _EXT_IOMMU*, unsigned char, unsigned char);/* 0x10 8 */
long (*AllocateDomain)(struct _EXT_IOMMU*, struct _EXT_IOMMU_DOMAIN*, struct _EXT_IOMMU_DOMAIN*, void*);/* 0x18 8 */
void (*FreeDomain)(struct _EXT_IOMMU*, struct _EXT_IOMMU_DOMAIN*, void*);/* 0x20 8 */
long (*CreateDevice)(struct _EXT_IOMMU*, struct _EXT_IOMMU_DEVICE_ID*, union _EXT_IOMMU_CREATE_DEVICE_FLAGS, void*, struct _EXT_IOMMU_DEVICE**, void*);/* 0x28 8 */
void (*DeleteDevice)(struct _EXT_IOMMU*, struct _EXT_IOMMU_DEVICE*, void*);/* 0x30 8 */
unsigned char (*OwnDevice)(struct _EXT_IOMMU*, struct _EXT_IOMMU_DEVICE_ID*);/* 0x38 8 */
/* ── cacheline 1 boundary (64 bytes) ── */
void (*ConfigureDeviceFaultReporting)(struct _EXT_IOMMU*, struct _EXT_IOMMU_DEVICE*, unsigned char);/* 0x40 8 */
long (*AttachDeviceDomain)(struct _EXT_IOMMU*, struct _EXT_IOMMU_DEVICE*, struct _EXT_IOMMU_DOMAIN*, void*);/* 0x48 8 */
void (*DetachDeviceDomain)(struct _EXT_IOMMU*, struct _EXT_IOMMU_DEVICE*, void*);/* 0x50 8 */
void (*FlushDomainTb)(struct _EXT_IOMMU*, struct _EXT_IOMMU_DOMAIN*, struct _EXT_IOMMU_FLUSH_CONTEXT*, unsigned, struct _KTB_FLUSH_VA*);/* 0x58 8 */
void (*SyncFlush)(struct _EXT_IOMMU*, struct _EXT_IOMMU_FLUSH_CONTEXT*);/* 0x60 8 */
void (*CompleteFlush)(struct _EXT_IOMMU*, struct _EXT_IOMMU_FLUSH_CONTEXT*);/* 0x68 8 */
long (*AllocateRemappingTableEntry)(void*, unsigned long, unsigned long, unsigned long, unsigned short, unsigned char, unsigned char, unsigned long, struct _EXT_IOMMU_DEVICE_ID*);/* 0x70 8 */
long (*FreeRemappingTableEntry)(void*, unsigned long, unsigned long);/* 0x78 8 */
/* ── cacheline 2 boundary (128 bytes) ── */
unsigned char (*UpdateRemappingTableEntry)(void*, unsigned char, unsigned long, struct _INTERRUPT_LINE_STATE*);/* 0x80 8 */
void (*InvalidateRemappingTableEntry)(void*, unsigned long);/* 0x88 8 */
void (*UpdateRemappingDestination)(void*, unsigned char, unsigned long*, unsigned long*, unsigned long);/* 0x90 8 */
long (*InitializeFirmwareDomain)(struct _EXT_IOMMU*, struct _EXT_IOMMU_DOMAIN*);/* 0x98 8 */
void (*ConfigureDomain)(struct _EXT_IOMMU*, struct _EXT_IOMMU_DOMAIN*);/* 0xa0 8 */
long (*Deinitialize)(struct _EXT_IOMMU*);/* 0xa8 8 */
void (*CaptureGlobalCrashdumpState)(void*);/* 0xb0 8 */
long (*SetDeviceMpam)(struct _EXT_IOMMU*, struct _EXT_IOMMU_DEVICE_ID*, unsigned short, unsigned char);/* 0xb8 8 */
/* ── cacheline 3 boundary (192 bytes) ── */
long (*GetDeviceMpam)(struct _EXT_IOMMU*, struct _EXT_IOMMU_DEVICE_ID*, unsigned short*, unsigned char*);/* 0xc0 8 */
};
size 200 (0xc8)25 members0 holespadding 04 cachelines
Used in (2)