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,
PARB_START_ARBITER StartArbiter
PARBITER_ALTERNATIVE CurrentAlternative
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)
PARB_RETEST_ALLOCATION RetestAllocation
NTSTATUS(NTAPI * PARB_START_ARBITER)(_In_ PARBITER_INSTANCE Arbiter)
INT32(NTAPI * PARB_SCORE_REQUIREMENT)(_In_ PIO_RESOURCE_DESCRIPTOR IoDescriptor)
struct _ARBITER_ORDERING ARBITER_ORDERING
PARB_PREPROCESS_ENTRY PreprocessEntry
struct _ARBITER_ALLOCATION_STATE * PARBITER_ALLOCATION_STATE
PARB_QUERY_CONFLICT QueryConflict
PARBITER_ORDERING Orderings
struct _ARBITER_INSTANCE ARBITER_INSTANCE
PARBITER_INTERFACE Interface
struct _ARBITER_ALLOCATION_STATE ARBITER_ALLOCATION_STATE
NTSTATUS(NTAPI * PARB_TRANSLATE_ORDERING)(_Out_ PIO_RESOURCE_DESCRIPTOR OutIoDescriptor, _In_ PIO_RESOURCE_DESCRIPTOR IoDescriptor)
struct _ARBITER_ORDERING_LIST * PARBITER_ORDERING_LIST
NTSTATUS(NTAPI * PARB_UNPACK_REQUIREMENT)(_In_ PIO_RESOURCE_DESCRIPTOR IoDescriptor, _Out_ PUINT64 OutMinimumAddress, _Out_ PUINT64 OutMaximumAddress, _Out_ PUINT32 OutLength, _Out_ PUINT32 OutAlignment)
PARBITER_LIST_ENTRY Entry
PARB_ADD_ALLOCATION AddAllocation
PARB_TEST_ALLOCATION TestAllocation
NTSTATUS(NTAPI * PARB_PACK_RESOURCE)(_In_ PIO_RESOURCE_DESCRIPTOR IoDescriptor, _In_ UINT64 Start, _Out_ PCM_PARTIAL_RESOURCE_DESCRIPTOR CmDescriptor)
PARB_ROLLBACK_ALLOCATION RollbackAllocation
PRTL_RANGE_LIST Allocation
PARB_BACKTRACK_ALLOCATION BacktrackAllocation
NTSTATUS(NTAPI * PARB_UNPACK_RESOURCE)(_In_ PCM_PARTIAL_RESOURCE_DESCRIPTOR CmDescriptor, _Out_ PUINT64 Start, _Out_ PUINT32 OutLength)
NTSTATUS(* NTAPI)(IN PFILE_FULL_EA_INFORMATION EaBuffer, IN ULONG EaLength, OUT PULONG ErrorOffset)
VOID(NTAPI * PARB_ADD_ALLOCATION)(_In_ PARBITER_INSTANCE Arbiter, _Inout_ PARBITER_ALLOCATION_STATE ArbState)
PARB_SCORE_REQUIREMENT ScoreRequirement
ARBITER_ORDERING_LIST ReservedList
struct _ARBITER_ALTERNATIVE ARBITER_ALTERNATIVE
NTSTATUS(NTAPI * PARB_ADD_RESERVED)(_In_ PARBITER_INSTANCE Arbiter)
NTSTATUS(NTAPI * PARB_RETEST_ALLOCATION)(_In_ PARBITER_INSTANCE Arbiter, _In_ PLIST_ENTRY ArbitrationList)
PDEVICE_OBJECT BusDeviceObject
NTSTATUS(NTAPI * PARB_ROLLBACK_ALLOCATION)(_In_ PARBITER_INSTANCE Arbiter)
UINT32 AllocationStackMaxSize
_Reserved_ PVOID Reserved
PARB_COMMIT_ALLOCATION CommitAllocation
NTSTATUS(NTAPI * PARB_BOOT_ALLOCATION)(_In_ PARBITER_INSTANCE Arbiter, _In_ PLIST_ENTRY ArbitrationList)
PARB_UNPACK_REQUIREMENT UnpackRequirement
struct _ARBITER_ORDERING_LIST ARBITER_ORDERING_LIST
BOOLEAN TransactionInProgress
NTSTATUS(NTAPI * PARB_QUERY_ARBITRATE)(_In_ PARBITER_INSTANCE Arbiter)
NTSTATUS(NTAPI * PARB_PREPROCESS_ENTRY)(_In_ PARBITER_INSTANCE Arbiter, _Inout_ PARBITER_ALLOCATION_STATE ArbState)
ARBITER_ORDERING_LIST OrderingList
NTSTATUS(NTAPI * PARB_COMMIT_ALLOCATION)(_In_ PARBITER_INSTANCE Arbiter)
PARB_ADD_RESERVED AddReserved
struct _ARBITER_INSTANCE * PARBITER_INSTANCE
NTSTATUS(NTAPI * PARB_QUERY_CONFLICT)(_In_ PARBITER_INSTANCE Arbiter)
NTSTATUS(NTAPI * PARB_TEST_ALLOCATION)(_In_ PARBITER_INSTANCE Arbiter, _In_ PLIST_ENTRY ArbitrationList)
PVOID ConflictCallbackContext
NTSTATUS(NTAPI * PARB_OVERRIDE_CONFLICT)(_In_ PARBITER_INSTANCE Arbiter)
PRTL_RANGE_LIST PossibleAllocation
PARB_PACK_RESOURCE PackResource
PARBITER_ALLOCATION_STATE AllocationStack
BOOLEAN(NTAPI * PARB_GET_NEXT_ALLOCATION_RANGE)(_In_ PARBITER_INSTANCE Arbiter, _Inout_ PARBITER_ALLOCATION_STATE ArbState)
PARBITER_ALTERNATIVE Alternatives
PARB_QUERY_ARBITRATE QueryArbitrate
VOID(NTAPI * PARB_BACKTRACK_ALLOCATION)(_In_ PARBITER_INSTANCE Arbiter, _Inout_ PARBITER_ALLOCATION_STATE ArbState)
PARB_ALLOCATE_ENTRY AllocateEntry
NTSTATUS(NTAPI * PARB_ALLOCATE_ENTRY)(_In_ PARBITER_INSTANCE Arbiter, _Inout_ PARBITER_ALLOCATION_STATE ArbState)
PARB_OVERRIDE_CONFLICT OverrideConflict
CM_RESOURCE_TYPE ResourceType
unsigned long long UINT64
struct _ARBITER_ORDERING * PARBITER_ORDERING
PARB_FIND_SUITABLE_RANGE FindSuitableRange
BOOLEAN(NTAPI * PARB_FIND_SUITABLE_RANGE)(_In_ PARBITER_INSTANCE Arbiter, _Inout_ PARBITER_ALLOCATION_STATE ArbState)
PARB_BOOT_ALLOCATION BootAllocation
PARB_GET_NEXT_ALLOCATION_RANGE GetNextAllocationRange
UCHAR RangeAvailableAttributes
struct _ARBITER_ALTERNATIVE * PARBITER_ALTERNATIVE
unsigned __int64 * PUINT64
PARB_UNPACK_RESOURCE UnpackResource
PIO_RESOURCE_DESCRIPTOR Descriptor