struct _BUS_HANDLER
{
ULONG Version;
enum _INTERFACE_TYPE InterfaceType;
enum _BUS_DATA_TYPE ConfigurationType;
ULONG BusNumber;
struct _DEVICE_OBJECT* DeviceObject;
struct _BUS_HANDLER* ParentHandler;
VOID* BusData;
ULONG DeviceControlExtensionSize;
struct _SUPPORTED_RANGES* BusAddresses;
ULONG Reserved[
4];
ULONG (*GetBusData)(
struct _BUS_HANDLER* arg1,
struct _BUS_HANDLER* arg2,
ULONG arg3,
VOID* arg4,
ULONG arg5,
ULONG arg6);
ULONG (*SetBusData)(
struct _BUS_HANDLER* arg1,
struct _BUS_HANDLER* arg2,
ULONG arg3,
VOID* arg4,
ULONG arg5,
ULONG arg6);
LONG (*AdjustResourceList)(
struct _BUS_HANDLER* arg1,
struct _BUS_HANDLER* arg2,
struct _IO_RESOURCE_REQUIREMENTS_LIST** arg3);
LONG (*AssignSlotResources)(
struct _BUS_HANDLER* arg1,
struct _BUS_HANDLER* arg2,
struct _UNICODE_STRING* arg3,
struct _UNICODE_STRING* arg4,
struct _DRIVER_OBJECT* arg5,
struct _DEVICE_OBJECT* arg6,
ULONG arg7,
struct _CM_RESOURCE_LIST** arg8);
UCHAR (*TranslateBusAddress)(
struct _BUS_HANDLER* arg1,
struct _BUS_HANDLER* arg2,
union _LARGE_INTEGER arg3,
ULONG* arg4,
union _LARGE_INTEGER* arg5);
VOID* Spare1;
VOID* Spare2;
VOID* Spare3;
VOID* Spare4;
VOID* Spare5;
VOID* Spare6;
VOID* Spare7;
VOID* Spare8;
};