285 _In_ CM_RESOURCE_TYPE ResourceType,
294 DPRINT(
"ArbInitializeArbiterInstance: '%S'\n", ArbiterName);
305 Arbiter->BusDeviceObject = BusDeviceObject;
308 if (!Arbiter->MutexEvent)
310 DPRINT1(
"ArbInitializeArbiterInstance: STATUS_INSUFFICIENT_RESOURCES\n");
317 if (!Arbiter->AllocationStack)
319 DPRINT1(
"ArbInitializeArbiterInstance: STATUS_INSUFFICIENT_RESOURCES\n");
324 Arbiter->AllocationStackMaxSize =
PAGE_SIZE;
327 if (!Arbiter->Allocation)
329 DPRINT1(
"ArbInitializeArbiterInstance: STATUS_INSUFFICIENT_RESOURCES\n");
336 if (!Arbiter->PossibleAllocation)
338 DPRINT1(
"ArbInitializeArbiterInstance: STATUS_INSUFFICIENT_RESOURCES\n");
348 Arbiter->Name = ArbiterName;
349 Arbiter->ResourceType = ResourceType;
350 Arbiter->TransactionInProgress =
FALSE;
352 if (!Arbiter->TestAllocation)
355 if (!Arbiter->RetestAllocation)
358 if (!Arbiter->CommitAllocation)
361 if (!Arbiter->RollbackAllocation)
364 if (!Arbiter->AddReserved)
367 if (!Arbiter->PreprocessEntry)
370 if (!Arbiter->AllocateEntry)
373 if (!Arbiter->GetNextAllocationRange)
376 if (!Arbiter->FindSuitableRange)
379 if (!Arbiter->AddAllocation)
382 if (!Arbiter->BacktrackAllocation)
385 if (!Arbiter->OverrideConflict)
388 if (!Arbiter->BootAllocation)
391 if (!Arbiter->QueryConflict)
394 if (!Arbiter->StartArbiter)
403 DPRINT1(
"ArbInitializeArbiterInstance: Status %X\n",
Status);
unsigned long long UINT64
NTSTATUS NTAPI ArbOverrideConflict(_In_ PARBITER_INSTANCE Arbiter)
NTSTATUS NTAPI ArbPruneOrdering(_Out_ PARBITER_ORDERING_LIST OrderingList, _In_ UINT64 MinimumAddress, _In_ UINT64 MaximumAddress)
BOOLEAN NTAPI ArbGetNextAllocationRange(_In_ PARBITER_INSTANCE Arbiter, _Inout_ PARBITER_ALLOCATION_STATE ArbState)
VOID NTAPI ArbAddAllocation(_In_ PARBITER_INSTANCE Arbiter, _Inout_ PARBITER_ALLOCATION_STATE ArbState)
NTSTATUS NTAPI ArbRetestAllocation(_In_ PARBITER_INSTANCE Arbiter, _In_ PLIST_ENTRY ArbitrationList)
NTSTATUS NTAPI ArbAddReserved(_In_ PARBITER_INSTANCE Arbiter)
NTSTATUS NTAPI ArbStartArbiter(_In_ PARBITER_INSTANCE Arbiter)
BOOLEAN NTAPI ArbFindSuitableRange(_In_ PARBITER_INSTANCE Arbiter, _Inout_ PARBITER_ALLOCATION_STATE ArbState)
NTSTATUS NTAPI ArbCommitAllocation(_In_ PARBITER_INSTANCE Arbiter)
NTSTATUS NTAPI ArbPreprocessEntry(_In_ PARBITER_INSTANCE Arbiter, _Inout_ PARBITER_ALLOCATION_STATE ArbState)
NTSTATUS NTAPI ArbInitializeOrderingList(_Out_ PARBITER_ORDERING_LIST OrderList)
VOID NTAPI ArbBacktrackAllocation(_In_ PARBITER_INSTANCE Arbiter, _Inout_ PARBITER_ALLOCATION_STATE ArbState)
NTSTATUS NTAPI ArbQueryConflict(_In_ PARBITER_INSTANCE Arbiter)
NTSTATUS NTAPI ArbAllocateEntry(_In_ PARBITER_INSTANCE Arbiter, _Inout_ PARBITER_ALLOCATION_STATE ArbState)
NTSTATUS NTAPI ArbBuildAssignmentOrdering(_Inout_ PARBITER_INSTANCE ArbInstance, _In_ PCWSTR OrderName, _In_ PCWSTR ReservedOrderName, _In_ PARB_TRANSLATE_ORDERING TranslateOrderingFunction)
NTSTATUS NTAPI ArbAddOrdering(_Out_ PARBITER_ORDERING_LIST OrderList, _In_ UINT64 MinimumAddress, _In_ UINT64 MaximumAddress)
NTSTATUS NTAPI ArbBootAllocation(_In_ PARBITER_INSTANCE Arbiter, _In_ PLIST_ENTRY ArbitrationList)
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)
VOID NTAPI ArbFreeOrderingList(_Out_ PARBITER_ORDERING_LIST OrderList)
NTSTATUS NTAPI ArbTestAllocation(_In_ PARBITER_INSTANCE Arbiter, _In_ PLIST_ENTRY ArbitrationList)
NTSTATUS NTAPI ArbRollbackAllocation(_In_ PARBITER_INSTANCE Arbiter)
#define TAG_ARB_ALLOCATION
NTSTATUS(NTAPI * PARB_TRANSLATE_ORDERING)(_Out_ PIO_RESOURCE_DESCRIPTOR OutIoDescriptor, _In_ PIO_RESOURCE_DESCRIPTOR IoDescriptor)
#define ARBITER_SIGNATURE
#define NT_SUCCESS(StatCode)
#define ExAllocatePoolWithTag(hernya, size, tag)
#define KeInitializeEvent(pEvt, foo, foo2)
#define ExFreePoolWithTag(_P, _T)
NTSYSAPI VOID NTAPI RtlInitializeRangeList(_Out_ PRTL_RANGE_LIST RangeList)
#define STATUS_NOT_IMPLEMENTED
#define STATUS_INSUFFICIENT_RESOURCES