10#define ARBITER_SIGNATURE 'sbrA'
11#define TAG_ARBITER 'MbrA'
12#define TAG_ARB_ALLOCATION 'AbrA'
13#define TAG_ARB_RANGE 'RbrA'
233 _In_ CM_RESOURCE_TYPE ResourceType,
unsigned long long UINT64
BOOLEAN(NTAPI * PARB_FIND_SUITABLE_RANGE)(_In_ PARBITER_INSTANCE Arbiter, _Inout_ PARBITER_ALLOCATION_STATE ArbState)
NTSTATUS(NTAPI * PARB_UNPACK_REQUIREMENT)(_In_ PIO_RESOURCE_DESCRIPTOR IoDescriptor, _Out_ PUINT64 OutMinimumAddress, _Out_ PUINT64 OutMaximumAddress, _Out_ PUINT32 OutLength, _Out_ PUINT32 OutAlignment)
NTSTATUS(NTAPI * PARB_ALLOCATE_ENTRY)(_In_ PARBITER_INSTANCE Arbiter, _Inout_ PARBITER_ALLOCATION_STATE ArbState)
NTSTATUS(NTAPI * PARB_OVERRIDE_CONFLICT)(_In_ PARBITER_INSTANCE Arbiter)
struct _ARBITER_ORDERING_LIST * PARBITER_ORDERING_LIST
NTSTATUS(NTAPI * PARB_ROLLBACK_ALLOCATION)(_In_ PARBITER_INSTANCE Arbiter)
VOID(NTAPI * PARB_ADD_ALLOCATION)(_In_ PARBITER_INSTANCE Arbiter, _Inout_ PARBITER_ALLOCATION_STATE ArbState)
struct _ARBITER_ALTERNATIVE * PARBITER_ALTERNATIVE
struct _ARBITER_ALLOCATION_STATE ARBITER_ALLOCATION_STATE
NTSTATUS(NTAPI * PARB_TRANSLATE_ORDERING)(_Out_ PIO_RESOURCE_DESCRIPTOR OutIoDescriptor, _In_ PIO_RESOURCE_DESCRIPTOR IoDescriptor)
struct _ARBITER_ALLOCATION_STATE * PARBITER_ALLOCATION_STATE
NTSTATUS(NTAPI * PARB_PREPROCESS_ENTRY)(_In_ PARBITER_INSTANCE Arbiter, _Inout_ PARBITER_ALLOCATION_STATE ArbState)
struct _ARBITER_ORDERING * PARBITER_ORDERING
BOOLEAN(NTAPI * PARB_GET_NEXT_ALLOCATION_RANGE)(_In_ PARBITER_INSTANCE Arbiter, _Inout_ PARBITER_ALLOCATION_STATE ArbState)
NTSTATUS(NTAPI * PARB_PACK_RESOURCE)(_In_ PIO_RESOURCE_DESCRIPTOR IoDescriptor, _In_ UINT64 Start, _Out_ PCM_PARTIAL_RESOURCE_DESCRIPTOR CmDescriptor)
NTSTATUS(NTAPI * PARB_RETEST_ALLOCATION)(_In_ PARBITER_INSTANCE Arbiter, _In_ PLIST_ENTRY ArbitrationList)
NTSTATUS(NTAPI * PARB_BOOT_ALLOCATION)(_In_ PARBITER_INSTANCE Arbiter, _In_ PLIST_ENTRY ArbitrationList)
NTSTATUS(NTAPI * PARB_ADD_RESERVED)(_In_ PARBITER_INSTANCE Arbiter)
struct _ARBITER_ORDERING ARBITER_ORDERING
struct _ARBITER_INSTANCE ARBITER_INSTANCE
NTSTATUS NTAPI ArbInitializeArbiterInstance(_Inout_ PARBITER_INSTANCE Arbiter, _In_ PDEVICE_OBJECT BusDeviceObject, _In_ CM_RESOURCE_TYPE ResourceType, _In_ PCWSTR ArbiterName, _In_ PCWSTR OrderName, _In_ PARB_TRANSLATE_ORDERING TranslateOrderingFunction)
NTSTATUS(NTAPI * PARB_QUERY_ARBITRATE)(_In_ PARBITER_INSTANCE Arbiter)
struct _ARBITER_INSTANCE * PARBITER_INSTANCE
NTSTATUS(NTAPI * PARB_UNPACK_RESOURCE)(_In_ PCM_PARTIAL_RESOURCE_DESCRIPTOR CmDescriptor, _Out_ PUINT64 Start, _Out_ PUINT32 OutLength)
NTSTATUS(NTAPI * PARB_QUERY_CONFLICT)(_In_ PARBITER_INSTANCE Arbiter)
NTSTATUS(NTAPI * PARB_START_ARBITER)(_In_ PARBITER_INSTANCE Arbiter)
NTSTATUS(NTAPI * PARB_TEST_ALLOCATION)(_In_ PARBITER_INSTANCE Arbiter, _In_ PLIST_ENTRY ArbitrationList)
struct _ARBITER_ALTERNATIVE ARBITER_ALTERNATIVE
VOID(NTAPI * PARB_BACKTRACK_ALLOCATION)(_In_ PARBITER_INSTANCE Arbiter, _Inout_ PARBITER_ALLOCATION_STATE ArbState)
INT32(NTAPI * PARB_SCORE_REQUIREMENT)(_In_ PIO_RESOURCE_DESCRIPTOR IoDescriptor)
NTSTATUS(NTAPI * PARB_COMMIT_ALLOCATION)(_In_ PARBITER_INSTANCE Arbiter)
struct _ARBITER_ORDERING_LIST ARBITER_ORDERING_LIST
unsigned __int64 * PUINT64
PARBITER_ALTERNATIVE CurrentAlternative
UCHAR RangeAvailableAttributes
PARBITER_ALTERNATIVE Alternatives
PARBITER_LIST_ENTRY Entry
PIO_RESOURCE_DESCRIPTOR Descriptor
PARB_RETEST_ALLOCATION RetestAllocation
BOOLEAN TransactionInProgress
PARB_UNPACK_RESOURCE UnpackResource
PARB_OVERRIDE_CONFLICT OverrideConflict
PARB_SCORE_REQUIREMENT ScoreRequirement
PRTL_RANGE_LIST Allocation
PARB_START_ARBITER StartArbiter
PARBITER_INTERFACE Interface
PARB_ALLOCATE_ENTRY AllocateEntry
PDEVICE_OBJECT BusDeviceObject
CM_RESOURCE_TYPE ResourceType
PARB_UNPACK_REQUIREMENT UnpackRequirement
ARBITER_ORDERING_LIST ReservedList
PARB_QUERY_ARBITRATE QueryArbitrate
PARB_PREPROCESS_ENTRY PreprocessEntry
PARB_FIND_SUITABLE_RANGE FindSuitableRange
PARBITER_ALLOCATION_STATE AllocationStack
PARB_GET_NEXT_ALLOCATION_RANGE GetNextAllocationRange
PARB_BOOT_ALLOCATION BootAllocation
PVOID ConflictCallbackContext
PARB_ADD_RESERVED AddReserved
PARB_TEST_ALLOCATION TestAllocation
PARB_ADD_ALLOCATION AddAllocation
PARB_QUERY_CONFLICT QueryConflict
PRTL_RANGE_LIST PossibleAllocation
PARB_COMMIT_ALLOCATION CommitAllocation
ARBITER_ORDERING_LIST OrderingList
PARB_PACK_RESOURCE PackResource
PARB_BACKTRACK_ALLOCATION BacktrackAllocation
UINT32 AllocationStackMaxSize
PARB_ROLLBACK_ALLOCATION RollbackAllocation
PARBITER_ORDERING Orderings
_Reserved_ PVOID Reserved