struct _BUS_HANDLER { unsigned long Version;/* 0x0 4 */ enum _INTERFACE_TYPE InterfaceType;/* 0x4 4 */ enum _BUS_DATA_TYPE ConfigurationType;/* 0x8 4 */ unsigned long BusNumber;/* 0xc 4 */ struct _DEVICE_OBJECT* DeviceObject;/* 0x10 8 */ struct _BUS_HANDLER* ParentHandler;/* 0x18 8 */ void* BusData;/* 0x20 8 */ unsigned long DeviceControlExtensionSize;/* 0x28 4 */ /* 4 bytes padding */ struct _SUPPORTED_RANGES* BusAddresses;/* 0x30 8 */ unsigned long Reserved[4];/* 0x38 16 */ /* ── cacheline 1 boundary (64 bytes) ── */ unsigned long (*GetBusData)(struct _BUS_HANDLER*, struct _BUS_HANDLER*, unsigned long, void*, unsigned long, unsigned long);/* 0x48 8 */ unsigned long (*SetBusData)(struct _BUS_HANDLER*, struct _BUS_HANDLER*, unsigned long, void*, unsigned long, unsigned long);/* 0x50 8 */ long (*AdjustResourceList)(struct _BUS_HANDLER*, struct _BUS_HANDLER*, struct _IO_RESOURCE_REQUIREMENTS_LIST**);/* 0x58 8 */ long (*AssignSlotResources)(struct _BUS_HANDLER*, struct _BUS_HANDLER*, struct _UNICODE_STRING*, struct _UNICODE_STRING*, struct _DRIVER_OBJECT*, struct _DEVICE_OBJECT*, unsigned long, struct _CM_RESOURCE_LIST**);/* 0x60 8 */ unsigned long (*GetInterruptVector)(struct _BUS_HANDLER*, struct _BUS_HANDLER*, unsigned long, unsigned long, unsigned char*, unsigned __int64*);/* 0x68 8 */ unsigned char (*TranslateBusAddress)(struct _BUS_HANDLER*, struct _BUS_HANDLER*, union _LARGE_INTEGER, unsigned long*, union _LARGE_INTEGER*);/* 0x70 8 */ void* Spare1;/* 0x78 8 */ /* ── cacheline 2 boundary (128 bytes) ── */ void* Spare2;/* 0x80 8 */ void* Spare3;/* 0x88 8 */ void* Spare4;/* 0x90 8 */ void* Spare5;/* 0x98 8 */ void* Spare6;/* 0xa0 8 */ void* Spare7;/* 0xa8 8 */ void* Spare8;/* 0xb0 8 */};size 184 (0xb8)24 members1 hole (4 bytes)padding 03 cachelines
Used in (1)