typedef struct _ARBITER_INSTANCE { unsigned long Signature; KEVENT *MutexEvent; unsigned short *Name; unsigned short *OrderingName; int ResourceType; RTL_RANGE_LIST *Allocation; RTL_RANGE_LIST *PossibleAllocation; ARBITER_ORDERING_LIST OrderingList; ARBITER_ORDERING_LIST ReservedList; long ReferenceCount; ARBITER_INTERFACE *Interface; unsigned long AllocationStackMaxSize; ARBITER_ALLOCATION_STATE *AllocationStack; long (*UnpackRequirement)(IO_RESOURCE_DESCRIPTOR *, unsigned __int64 *, unsigned __int64 *, unsigned __int64 *, unsigned __int64 *); long (*PackResource)(IO_RESOURCE_DESCRIPTOR *, unsigned __int64, CM_PARTIAL_RESOURCE_DESCRIPTOR *); long (*UnpackResource)(CM_PARTIAL_RESOURCE_DESCRIPTOR *, unsigned __int64 *, unsigned __int64 *); long (*ScoreRequirement)(IO_RESOURCE_DESCRIPTOR *); long (*TestAllocation)(ARBITER_INSTANCE *, ARBITER_TEST_ALLOCATION_PARAMETERS *); long (*RetestAllocation)(ARBITER_INSTANCE *, ARBITER_RETEST_ALLOCATION_PARAMETERS *); long (*CommitAllocation)(ARBITER_INSTANCE *); long (*RollbackAllocation)(ARBITER_INSTANCE *); long (*BootAllocation)(ARBITER_INSTANCE *, ARBITER_BOOT_ALLOCATION_PARAMETERS *); long (*QueryArbitrate)(ARBITER_INSTANCE *, ARBITER_QUERY_ARBITRATE_PARAMETERS *); long (*QueryConflict)(ARBITER_INSTANCE *, ARBITER_QUERY_CONFLICT_PARAMETERS *); long (*AddReserved)(ARBITER_INSTANCE *, ARBITER_ADD_RESERVED_PARAMETERS *); long (*StartArbiter)(ARBITER_INSTANCE *, CM_RESOURCE_LIST *); long (*PreprocessEntry)(ARBITER_INSTANCE *, ARBITER_ALLOCATION_STATE *); long (*AllocateEntry)(ARBITER_INSTANCE *, ARBITER_ALLOCATION_STATE *); unsigned char (*GetNextAllocationRange)(ARBITER_INSTANCE *, ARBITER_ALLOCATION_STATE *); unsigned char (*FindSuitableRange)(ARBITER_INSTANCE *, ARBITER_ALLOCATION_STATE *); void (*AddAllocation)(ARBITER_INSTANCE *, ARBITER_ALLOCATION_STATE *); void (*BacktrackAllocation)(ARBITER_INSTANCE *, ARBITER_ALLOCATION_STATE *); unsigned char (*OverrideConflict)(ARBITER_INSTANCE *, ARBITER_ALLOCATION_STATE *); long (*InitializeRangeList)(ARBITER_INSTANCE *, unsigned long, CM_PARTIAL_RESOURCE_DESCRIPTOR *, RTL_RANGE_LIST *); unsigned char TransactionInProgress; KEVENT *TransactionEvent; void *Extension; DEVICE_OBJECT *BusDeviceObject; void *ConflictCallbackContext; unsigned char (*ConflictCallback)(void *, RTL_RANGE *); wchar_t PdoDescriptionString[336]; char PdoSymbolicNameString[672]; wchar_t PdoAddressString[1]; } ARBITER_INSTANCE, *PARBITER_INSTANCE;