struct _ARBITER_INSTANCE { unsigned long Signature;/* 0x0 4 */ /* 4 bytes padding */ struct _KEVENT* MutexEvent;/* 0x8 8 */ unsigned short* Name;/* 0x10 8 */ unsigned short* OrderingName;/* 0x18 8 */ int ResourceType;/* 0x20 4 */ /* 4 bytes padding */ struct _RTL_RANGE_LIST* Allocation;/* 0x28 8 */ struct _RTL_RANGE_LIST* PossibleAllocation;/* 0x30 8 */ struct _ARBITER_ORDERING_LIST OrderingList;/* 0x38 16 */ /* ── cacheline 1 boundary (64 bytes) ── */ struct _ARBITER_ORDERING_LIST ReservedList;/* 0x48 16 */ long ReferenceCount;/* 0x58 4 */ /* 4 bytes padding */ struct _ARBITER_INTERFACE* Interface;/* 0x60 8 */ unsigned long AllocationStackMaxSize;/* 0x68 4 */ /* 4 bytes padding */ struct _ARBITER_ALLOCATION_STATE* AllocationStack;/* 0x70 8 */ long (*UnpackRequirement)(struct _IO_RESOURCE_DESCRIPTOR*, unsigned __int64*, unsigned __int64*, unsigned __int64*, unsigned __int64*);/* 0x78 8 */ /* ── cacheline 2 boundary (128 bytes) ── */ long (*PackResource)(struct _IO_RESOURCE_DESCRIPTOR*, unsigned __int64, struct _CM_PARTIAL_RESOURCE_DESCRIPTOR*);/* 0x80 8 */ long (*UnpackResource)(struct _CM_PARTIAL_RESOURCE_DESCRIPTOR*, unsigned __int64*, unsigned __int64*);/* 0x88 8 */ long (*ScoreRequirement)(struct _IO_RESOURCE_DESCRIPTOR*);/* 0x90 8 */ long (*TestAllocation)(struct _ARBITER_INSTANCE*, struct _ARBITER_TEST_ALLOCATION_PARAMETERS*);/* 0x98 8 */ long (*RetestAllocation)(struct _ARBITER_INSTANCE*, struct _ARBITER_RETEST_ALLOCATION_PARAMETERS*);/* 0xa0 8 */ long (*CommitAllocation)(struct _ARBITER_INSTANCE*);/* 0xa8 8 */ long (*RollbackAllocation)(struct _ARBITER_INSTANCE*);/* 0xb0 8 */ long (*BootAllocation)(struct _ARBITER_INSTANCE*, struct _ARBITER_BOOT_ALLOCATION_PARAMETERS*);/* 0xb8 8 */ /* ── cacheline 3 boundary (192 bytes) ── */ long (*QueryArbitrate)(struct _ARBITER_INSTANCE*, struct _ARBITER_QUERY_ARBITRATE_PARAMETERS*);/* 0xc0 8 */ long (*QueryConflict)(struct _ARBITER_INSTANCE*, struct _ARBITER_QUERY_CONFLICT_PARAMETERS*);/* 0xc8 8 */ long (*AddReserved)(struct _ARBITER_INSTANCE*, struct _ARBITER_ADD_RESERVED_PARAMETERS*);/* 0xd0 8 */ long (*StartArbiter)(struct _ARBITER_INSTANCE*, struct _CM_RESOURCE_LIST*);/* 0xd8 8 */ long (*PreprocessEntry)(struct _ARBITER_INSTANCE*, struct _ARBITER_ALLOCATION_STATE*);/* 0xe0 8 */ long (*AllocateEntry)(struct _ARBITER_INSTANCE*, struct _ARBITER_ALLOCATION_STATE*);/* 0xe8 8 */ unsigned char (*GetNextAllocationRange)(struct _ARBITER_INSTANCE*, struct _ARBITER_ALLOCATION_STATE*);/* 0xf0 8 */ unsigned char (*FindSuitableRange)(struct _ARBITER_INSTANCE*, struct _ARBITER_ALLOCATION_STATE*);/* 0xf8 8 */ /* ── cacheline 4 boundary (256 bytes) ── */ void (*AddAllocation)(struct _ARBITER_INSTANCE*, struct _ARBITER_ALLOCATION_STATE*);/* 0x100 8 */ void (*BacktrackAllocation)(struct _ARBITER_INSTANCE*, struct _ARBITER_ALLOCATION_STATE*);/* 0x108 8 */ unsigned char (*OverrideConflict)(struct _ARBITER_INSTANCE*, struct _ARBITER_ALLOCATION_STATE*);/* 0x110 8 */ long (*InitializeRangeList)(struct _ARBITER_INSTANCE*, unsigned long, struct _CM_PARTIAL_RESOURCE_DESCRIPTOR*, struct _RTL_RANGE_LIST*);/* 0x118 8 */ unsigned char TransactionInProgress;/* 0x120 1 */ /* 7 bytes padding */ struct _KEVENT* TransactionEvent;/* 0x128 8 */ void* Extension;/* 0x130 8 */ struct _DEVICE_OBJECT* BusDeviceObject;/* 0x138 8 */ /* ── cacheline 5 boundary (320 bytes) ── */ void* ConflictCallbackContext;/* 0x140 8 */ unsigned char (*ConflictCallback)(void*, struct _RTL_RANGE*);/* 0x148 8 */ wchar_t PdoDescriptionString[336];/* 0x150 672 */ /* ── cacheline 15 boundary (960 bytes) ── */ char PdoSymbolicNameString[672];/* 0x3f0 672 */ /* ── cacheline 26 boundary (1664 bytes) ── */ wchar_t PdoAddressString[1];/* 0x690 2 */};size 1688 (0x698)43 members5 holes (23 bytes)padding 627 cachelines
Used in (0)