struct _ARBITER_INSTANCE { unsigned long Signature;/* 0x0 4 */ struct _KEVENT* MutexEvent;/* 0x4 4 */ wchar_t* Name;/* 0x8 4 */ wchar_t* OrderingName;/* 0xc 4 */ int ResourceType;/* 0x10 4 */ struct _RTL_RANGE_LIST* Allocation;/* 0x14 4 */ struct _RTL_RANGE_LIST* PossibleAllocation;/* 0x18 4 */ struct _ARBITER_ORDERING_LIST OrderingList;/* 0x1c 8 */ struct _ARBITER_ORDERING_LIST ReservedList;/* 0x24 8 */ long ReferenceCount;/* 0x2c 4 */ struct _ARBITER_INTERFACE* Interface;/* 0x30 4 */ unsigned long AllocationStackMaxSize;/* 0x34 4 */ struct _ARBITER_ALLOCATION_STATE* AllocationStack;/* 0x38 4 */ long (*UnpackRequirement)(struct _IO_RESOURCE_DESCRIPTOR*, unsigned __int64*, unsigned __int64*, unsigned __int64*, unsigned __int64*);/* 0x3c 4 */ /* ── cacheline 1 boundary (64 bytes) ── */ long (*PackResource)(struct _IO_RESOURCE_DESCRIPTOR*, unsigned __int64, struct _CM_PARTIAL_RESOURCE_DESCRIPTOR*);/* 0x40 4 */ long (*UnpackResource)(struct _CM_PARTIAL_RESOURCE_DESCRIPTOR*, unsigned __int64*, unsigned __int64*);/* 0x44 4 */ long (*ScoreRequirement)(struct _IO_RESOURCE_DESCRIPTOR*);/* 0x48 4 */ long (*TestAllocation)(struct _ARBITER_INSTANCE*, struct _ARBITER_TEST_ALLOCATION_PARAMETERS*);/* 0x4c 4 */ long (*RetestAllocation)(struct _ARBITER_INSTANCE*, struct _ARBITER_RETEST_ALLOCATION_PARAMETERS*);/* 0x50 4 */ long (*CommitAllocation)(struct _ARBITER_INSTANCE*);/* 0x54 4 */ long (*RollbackAllocation)(struct _ARBITER_INSTANCE*);/* 0x58 4 */ long (*BootAllocation)(struct _ARBITER_INSTANCE*, struct _ARBITER_BOOT_ALLOCATION_PARAMETERS*);/* 0x5c 4 */ long (*QueryArbitrate)(struct _ARBITER_INSTANCE*, struct _ARBITER_QUERY_ARBITRATE_PARAMETERS*);/* 0x60 4 */ long (*QueryConflict)(struct _ARBITER_INSTANCE*, struct _ARBITER_QUERY_CONFLICT_PARAMETERS*);/* 0x64 4 */ long (*AddReserved)(struct _ARBITER_INSTANCE*, struct _ARBITER_ADD_RESERVED_PARAMETERS*);/* 0x68 4 */ long (*StartArbiter)(struct _ARBITER_INSTANCE*, struct _CM_RESOURCE_LIST*);/* 0x6c 4 */ long (*PreprocessEntry)(struct _ARBITER_INSTANCE*, struct _ARBITER_ALLOCATION_STATE*);/* 0x70 4 */ long (*AllocateEntry)(struct _ARBITER_INSTANCE*, struct _ARBITER_ALLOCATION_STATE*);/* 0x74 4 */ unsigned char (*GetNextAllocationRange)(struct _ARBITER_INSTANCE*, struct _ARBITER_ALLOCATION_STATE*);/* 0x78 4 */ unsigned char (*FindSuitableRange)(struct _ARBITER_INSTANCE*, struct _ARBITER_ALLOCATION_STATE*);/* 0x7c 4 */ /* ── cacheline 2 boundary (128 bytes) ── */ void (*AddAllocation)(struct _ARBITER_INSTANCE*, struct _ARBITER_ALLOCATION_STATE*);/* 0x80 4 */ void (*BacktrackAllocation)(struct _ARBITER_INSTANCE*, struct _ARBITER_ALLOCATION_STATE*);/* 0x84 4 */ unsigned char (*OverrideConflict)(struct _ARBITER_INSTANCE*, struct _ARBITER_ALLOCATION_STATE*);/* 0x88 4 */ long (*InitializeRangeList)(struct _ARBITER_INSTANCE*, unsigned long, struct _CM_PARTIAL_RESOURCE_DESCRIPTOR*, struct _RTL_RANGE_LIST*);/* 0x8c 4 */ long (*DeleteOwnerRanges)(struct _ARBITER_INSTANCE*, void*);/* 0x90 4 */ unsigned char TransactionInProgress;/* 0x94 1 */ /* 3 bytes padding */ struct _KEVENT* TransactionEvent;/* 0x98 4 */ void* Extension;/* 0x9c 4 */ struct _DEVICE_OBJECT* BusDeviceObject;/* 0xa0 4 */ void* ConflictCallbackContext;/* 0xa4 4 */ unsigned char (*ConflictCallback)(void*, struct _RTL_RANGE*);/* 0xa8 4 */};size 172 (0xac)41 members1 hole (3 bytes)padding 03 cachelines
Used in (0)