x86 / ntdllntoskrnl /

_ARBITER_INSTANCE

← 10.0.18362.1016 20 builds latest →
struct _ARBITER_INSTANCE {
unsigned long Signature;/* 0x0 4 */
wchar_t* Name;/* 0x8 4 */
wchar_t* OrderingName;/* 0xc 4 */
int ResourceType;/* 0x10 4 */
long ReferenceCount;/* 0x2c 4 */
unsigned long AllocationStackMaxSize;/* 0x34 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 */
void* Extension;/* 0x9c 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