Go to the source code of this file.
Classes | |
struct | _ARBITER_ORDERING |
struct | _ARBITER_ORDERING_LIST |
struct | _ARBITER_ALTERNATIVE |
struct | _ARBITER_ALLOCATION_STATE |
struct | _ARBITER_INSTANCE |
Defines | |
#define | MAXULONGLONG ((ULONGLONG)-1) |
#define | ARB_PRINT(Level, Message) |
#define | ARB_INDENT(Level, Count) |
#define | ALIGN_ADDRESS_DOWN(address, alignment) ((address) & ~((ULONGLONG)alignment - 1)) |
#define | ALIGN_ADDRESS_UP(address, alignment) (ALIGN_ADDRESS_DOWN( (address + alignment - 1), alignment)) |
#define | LENGTH_OF(_start, _end) ((_end) - (_start) + 1) |
#define | ARBITER_ALTERNATIVE_FLAG_SHARED 0x00000001 |
#define | ARBITER_ALTERNATIVE_FLAG_FIXED 0x00000002 |
#define | ARBITER_ALTERNATIVE_FLAG_INVALID 0x00000004 |
#define | ARBITER_STATE_FLAG_RETEST 0x0001 |
#define | ARBITER_STATE_FLAG_BOOT 0x0002 |
#define | ARBITER_STATE_FLAG_CONFLICT 0x0004 |
#define | ARBITER_STATE_FLAG_NULL_CONFLICT_OK 0x0008 |
#define | ARBITER_RANGE_BOOT_ALLOCATED 0x01 |
#define | ARBITER_RANGE_ALIAS 0x10 |
#define | ARBITER_RANGE_POSITIVE_DECODE 0x20 |
#define | INITIAL_ALLOCATION_STATE_SIZE PAGE_SIZE |
#define | ARBITER_INSTANCE_SIGNATURE 'sbrA' |
#define | ArbAcquireArbiterLock(_Arbiter) KeWaitForSingleObject( (_Arbiter)->MutexEvent, Executive, KernelMode, FALSE, NULL ) |
#define | ArbReleaseArbiterLock(_Arbiter) KeSetEvent( (_Arbiter)->MutexEvent, 0, FALSE ) |
#define | FOR_ALL_IN_LIST(Type, Head, Current) |
#define | FOR_ALL_IN_ARRAY(_Array, _Size, _Current) |
#define | FOR_REST_IN_ARRAY(_Array, _Size, _Current) |
#define | INTERSECT(s1, e1, s2, e2) |
#define | INTERSECT_SIZE(s1, e1, s2, e2) ( __min((e1),(e2)) - __max((s1),(s2)) + 1) |
#define | LEGACY_REQUEST(_Entry) |
#define | PNP_REQUEST(_Entry) |
#define | ARBITER_PRIORITY_NULL 0 |
#define | ARBITER_PRIORITY_PREFERRED_RESERVED (MAXLONG-2) |
#define | ARBITER_PRIORITY_RESERVED (MAXLONG-1) |
#define | ARBITER_PRIORITY_EXHAUSTED (MAXLONG) |
Typedefs | |
typedef _ARBITER_ORDERING | ARBITER_ORDERING |
typedef _ARBITER_ORDERING * | PARBITER_ORDERING |
typedef _ARBITER_ORDERING_LIST | ARBITER_ORDERING_LIST |
typedef _ARBITER_ORDERING_LIST * | PARBITER_ORDERING_LIST |
typedef _ARBITER_ALTERNATIVE | ARBITER_ALTERNATIVE |
typedef _ARBITER_ALTERNATIVE * | PARBITER_ALTERNATIVE |
typedef _ARBITER_ALLOCATION_STATE | ARBITER_ALLOCATION_STATE |
typedef _ARBITER_ALLOCATION_STATE * | PARBITER_ALLOCATION_STATE |
typedef _ARBITER_INSTANCE ARBITER_INSTANCE * | PARBITER_INSTANCE |
typedef NTSTATUS(* | PARBITER_UNPACK_REQUIREMENT )(IN PIO_RESOURCE_DESCRIPTOR Descriptor, OUT PULONGLONG Minimum, OUT PULONGLONG Maximum, OUT PULONG Length, OUT PULONG Alignment) |
typedef NTSTATUS(* | PARBITER_PACK_RESOURCE )(IN PIO_RESOURCE_DESCRIPTOR Requirement, IN ULONGLONG Start, OUT PCM_PARTIAL_RESOURCE_DESCRIPTOR Descriptor) |
typedef NTSTATUS(* | PARBITER_UNPACK_RESOURCE )(IN PCM_PARTIAL_RESOURCE_DESCRIPTOR Descriptor, OUT PULONGLONG Start, OUT PULONG Length) |
typedef LONG(* | PARBITER_SCORE_REQUIREMENT )(IN PIO_RESOURCE_DESCRIPTOR Descriptor) |
typedef NTSTATUS(* | PARBITER_PREPROCESS_ENTRY )(IN PARBITER_INSTANCE Arbiter, IN PARBITER_ALLOCATION_STATE Entry) |
typedef NTSTATUS(* | PARBITER_ALLOCATE_ENTRY )(IN PARBITER_INSTANCE Arbiter, IN PARBITER_ALLOCATION_STATE Entry) |
typedef NTSTATUS(* | PARBITER_TEST_ALLOCATION )(IN PARBITER_INSTANCE Arbiter, IN OUT PLIST_ENTRY ArbitrationList) |
typedef NTSTATUS(* | PARBITER_COMMIT_ALLOCATION )(IN PARBITER_INSTANCE Arbiter) |
typedef NTSTATUS(* | PARBITER_ROLLBACK_ALLOCATION )(IN PARBITER_INSTANCE Arbiter) |
typedef NTSTATUS(* | PARBITER_RETEST_ALLOCATION )(IN PARBITER_INSTANCE Arbiter, IN OUT PLIST_ENTRY ArbitrationList) |
typedef NTSTATUS(* | PARBITER_BOOT_ALLOCATION )(IN PARBITER_INSTANCE Arbiter, IN OUT PLIST_ENTRY ArbitrationList) |
typedef NTSTATUS(* | PARBITER_ADD_RESERVED )(IN PARBITER_INSTANCE Arbiter, IN PIO_RESOURCE_DESCRIPTOR Requirement OPTIONAL, IN PCM_PARTIAL_RESOURCE_DESCRIPTOR Resource OPTIONAL) |
typedef BOOLEAN(* | PARBITER_GET_NEXT_ALLOCATION_RANGE )(PARBITER_INSTANCE Arbiter, PARBITER_ALLOCATION_STATE State) |
typedef BOOLEAN(* | PARBITER_FIND_SUITABLE_RANGE )(IN PARBITER_INSTANCE Arbiter, IN PARBITER_ALLOCATION_STATE State) |
typedef VOID(* | PARBITER_ADD_ALLOCATION )(IN PARBITER_INSTANCE Arbiter, IN PARBITER_ALLOCATION_STATE State) |
typedef VOID(* | PARBITER_BACKTRACK_ALLOCATION )(IN PARBITER_INSTANCE Arbiter, IN PARBITER_ALLOCATION_STATE State) |
typedef BOOLEAN(* | PARBITER_OVERRIDE_CONFLICT )(IN PARBITER_INSTANCE Arbiter, IN PARBITER_ALLOCATION_STATE State) |
typedef NTSTATUS(* | PARBITER_QUERY_ARBITRATE )(IN PARBITER_INSTANCE Arbiter, IN PLIST_ENTRY ArbitrationList) |
typedef NTSTATUS(* | PARBITER_QUERY_CONFLICT )(IN PARBITER_INSTANCE Arbiter, IN PDEVICE_OBJECT PhysicalDeviceObject, IN PIO_RESOURCE_DESCRIPTOR ConflictingResource, OUT PULONG ConflictCount, OUT PARBITER_CONFLICT_INFO *Conflicts) |
typedef NTSTATUS(* | PARBITER_START_ARBITER )(IN PARBITER_INSTANCE Arbiter, IN PCM_RESOURCE_LIST StartResources) |
typedef _ARBITER_INSTANCE | ARBITER_INSTANCE |
typedef NTSTATUS(* | PARBITER_TRANSLATE_ALLOCATION_ORDER )(OUT PIO_RESOURCE_DESCRIPTOR TranslatedDescriptor, IN PIO_RESOURCE_DESCRIPTOR RawDescriptor) |
Functions | |
NTSTATUS | ArbInitializeOrderingList (IN OUT PARBITER_ORDERING_LIST List) |
VOID | ArbFreeOrderingList (IN OUT PARBITER_ORDERING_LIST List) |
NTSTATUS | ArbCopyOrderingList (OUT PARBITER_ORDERING_LIST Destination, IN PARBITER_ORDERING_LIST Source) |
NTSTATUS | ArbAddOrdering (OUT PARBITER_ORDERING_LIST List, IN ULONGLONG Start, IN ULONGLONG End) |
NTSTATUS | ArbPruneOrdering (IN OUT PARBITER_ORDERING_LIST OrderingList, IN ULONGLONG Start, IN ULONGLONG End) |
NTSTATUS | ArbInitializeArbiterInstance (OUT PARBITER_INSTANCE Arbiter, IN PDEVICE_OBJECT BusDevice, IN CM_RESOURCE_TYPE ResourceType, IN PWSTR Name, IN PWSTR OrderingName, IN PARBITER_TRANSLATE_ALLOCATION_ORDER TranslateOrdering) |
VOID | ArbDeleteArbiterInstance (IN PARBITER_INSTANCE Arbiter) |
NTSTATUS | ArbArbiterHandler (IN PVOID Context, IN ARBITER_ACTION Action, IN OUT PARBITER_PARAMETERS Params) |
NTSTATUS | ArbTestAllocation (IN PARBITER_INSTANCE Arbiter, IN OUT PLIST_ENTRY ArbitrationList) |
NTSTATUS | ArbRetestAllocation (IN PARBITER_INSTANCE Arbiter, IN OUT PLIST_ENTRY ArbitrationList) |
NTSTATUS | ArbCommitAllocation (PARBITER_INSTANCE Arbiter) |
NTSTATUS | ArbRollbackAllocation (PARBITER_INSTANCE Arbiter) |
NTSTATUS | ArbAddReserved (IN PARBITER_INSTANCE Arbiter, IN PIO_RESOURCE_DESCRIPTOR Requirement OPTIONAL, IN PCM_PARTIAL_RESOURCE_DESCRIPTOR Resource OPTIONAL) |
NTSTATUS | ArbPreprocessEntry (IN PARBITER_INSTANCE Arbiter, IN PARBITER_ALLOCATION_STATE State) |
NTSTATUS | ArbAllocateEntry (IN PARBITER_INSTANCE Arbiter, IN PARBITER_ALLOCATION_STATE State) |
NTSTATUS | ArbSortArbitrationList (IN OUT PLIST_ENTRY ArbitrationList) |
VOID | ArbConfirmAllocation (IN PARBITER_INSTANCE Arbiter, IN PARBITER_ALLOCATION_STATE State) |
BOOLEAN | ArbOverrideConflict (IN PARBITER_INSTANCE Arbiter, IN PARBITER_ALLOCATION_STATE State) |
NTSTATUS | ArbQueryConflict (IN PARBITER_INSTANCE Arbiter, IN PDEVICE_OBJECT PhysicalDeviceObject, IN PIO_RESOURCE_DESCRIPTOR ConflictingResource, OUT PULONG ConflictCount, OUT PARBITER_CONFLICT_INFO *Conflicts) |
VOID | ArbBacktrackAllocation (IN PARBITER_INSTANCE Arbiter, IN PARBITER_ALLOCATION_STATE State) |
BOOLEAN | ArbGetNextAllocationRange (PARBITER_INSTANCE Arbiter, PARBITER_ALLOCATION_STATE State) |
BOOLEAN | ArbFindSuitableRange (PARBITER_INSTANCE Arbiter, PARBITER_ALLOCATION_STATE State) |
VOID | ArbAddAllocation (IN PARBITER_INSTANCE Arbiter, IN PARBITER_ALLOCATION_STATE State) |
NTSTATUS | ArbBootAllocation (IN PARBITER_INSTANCE Arbiter, IN OUT PLIST_ENTRY ArbitrationList) |
NTSTATUS | ArbStartArbiter (IN PARBITER_INSTANCE Arbiter, IN PCM_RESOURCE_LIST StartResources) |
NTSTATUS | ArbBuildAssignmentOrdering (IN OUT PARBITER_INSTANCE Arbiter, IN PWSTR AllocationOrderName, IN PWSTR ReservedResourcesName, IN PARBITER_TRANSLATE_ALLOCATION_ORDER Translate OPTIONAL) |
|
|
|
Definition at line 139 of file arbiter.h. Referenced by ArbpBuildAlternative(), and IopGenericScoreRequirement(). |
|
Definition at line 53 of file arbiter.h. Referenced by ArbAllocateEntry(), and ArbGetNextAllocationRange(). |
|
|
Definition at line 585 of file arbiter.h. Referenced by ArbArbiterHandler(), and ArbBuildAssignmentOrdering(). |
|
Definition at line 156 of file arbiter.h. Referenced by ArbBootAllocation(), ArbGetNextAllocationRange(), ArbOverrideConflict(), ArbpBuildAlternative(), and ArbpUpdatePriority(). |
|
Definition at line 161 of file arbiter.h. Referenced by ArbBootAllocation(), and ArbpBuildAlternative(). |
|
Definition at line 150 of file arbiter.h. Referenced by ArbAddAllocation(), ArbAllocateEntry(), ArbBootAllocation(), ArbFindSuitableRange(), ArbpBuildAlternative(), IopPortAddAllocation(), IopPortFindSuitableRange(), and IopPortIsAliasedRangeAvailable(). |
|
Definition at line 447 of file arbiter.h. Referenced by ArbArbiterHandler(), and ArbInitializeArbiterInstance(). |
|
Definition at line 672 of file arbiter.h. Referenced by ArbGetNextAllocationRange(), and ArbpUpdatePriority(). |
|
Definition at line 669 of file arbiter.h. Referenced by ArbGetNextAllocationRange(), ArbpBuildAllocationStack(), and ArbpUpdatePriority(). |
|
Definition at line 670 of file arbiter.h. Referenced by ArbGetNextAllocationRange(), and ArbpUpdatePriority(). |
|
Definition at line 671 of file arbiter.h. Referenced by ArbGetNextAllocationRange(), and ArbpUpdatePriority(). |
|
Definition at line 442 of file arbiter.h. Referenced by IopPortAddAllocation(). |
|
Definition at line 440 of file arbiter.h. Referenced by ArbBootAllocation(), ArbFindSuitableRange(), IopMemFindSuitableRange(), IopPortFindSuitableRange(), and IopPortIsAliasedRangeAvailable(). |
|
|
|
Definition at line 218 of file arbiter.h. Referenced by ArbBootAllocation(). |
|
Definition at line 219 of file arbiter.h. Referenced by ArbQueryConflict(). |
|
Definition at line 220 of file arbiter.h. Referenced by ArbFindSuitableRange(). |
|
Definition at line 217 of file arbiter.h. Referenced by ArbRetestAllocation(). |
|
Definition at line 588 of file arbiter.h. Referenced by ArbArbiterHandler(), and ArbBuildAssignmentOrdering(). |
|
Value:
|
|
Value:
|
|
Value:
|
|
Definition at line 445 of file arbiter.h. Referenced by ArbInitializeArbiterInstance(). |
|
Value:
Definition at line 636 of file arbiter.h. Referenced by ArbGetNextAllocationRange(), ArbOverrideConflict(), and ArbpUpdatePriority(). |
|
Definition at line 653 of file arbiter.h. Referenced by ArbGetNextAllocationRange(), and ArbpUpdatePriority(). |
|
Value:
|
|
Definition at line 143 of file arbiter.h. Referenced by ArbBootAllocation(). |
|
|
|
Value:
|
|
Referenced by ArbpBuildAllocationStack(), and IopPortIsAliasedRangeAvailable(). |
|
Referenced by ArbpBuildAllocationStack(). |
|
Referenced by ArbDeleteArbiterInstance(). |
|
Referenced by ArbAddOrdering(), ArbCopyOrderingList(), ArbInitializeOrderingList(), and ArbPruneOrdering(). |
|
|
|
|
|
|
|
|
|
Referenced by ArbpBuildAllocationStack(). |
|
|
|
|
|
|
|
|
|
|
|
|
|
Definition at line 288 of file arbiter.h. Referenced by ArbArbiterHandler(). |
|
Referenced by ArbBuildAssignmentOrdering(). |
|
Referenced by ArbInitializeOrderingList(). |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Definition at line 677 of file arbiter.h. Referenced by ArbInitializeArbiterInstance(). |
|
|
|
|
|
Definition at line 2189 of file arbiter.c. References ARBITER_ALTERNATIVE_FLAG_SHARED, ASSERT, NT_SUCCESS, NTSTATUS(), NULL, PAGED_CODE, and RtlAddRange(). Referenced by ArbInitializeArbiterInstance().
|
|
Definition at line 3028 of file arbiter.c. References ARBITER_ORDERING, ARBITER_ORDERING_GROW_SIZE, ARBITER_ORDERING_LIST_TAG, ASSERT, End, ExAllocatePoolWithTag, ExFreePool(), List, PagedPool, and Start. Referenced by ArbBuildAssignmentOrdering().
|
|
Definition at line 3630 of file arbiter.c. References PAGED_CODE. Referenced by ArbInitializeArbiterInstance().
|
|
Definition at line 2325 of file arbiter.c. References ARB_INDENT, ARB_PRINT, ARBITER_ALTERNATIVE_FLAG_SHARED, ArbiterResultNullRequest, ASSERT, _ARBITER_LIST_ENTRY::Assignment, _ARBITER_ALLOCATION_STATE::CurrentAlternative, _ARBITER_ALLOCATION_STATE::CurrentMaximum, _ARBITER_ALLOCATION_STATE::CurrentMinimum, _ARBITER_ALTERNATIVE::Descriptor, _ARBITER_ALLOCATION_STATE::End, _ARBITER_ALLOCATION_STATE::Entry, FALSE, _ARBITER_ALTERNATIVE::Flags, _ARBITER_ALTERNATIVE::Length, _ARBITER_ALTERNATIVE::Minimum, NT_SUCCESS, NTSTATUS(), NULL, PAGED_CODE, _ARBITER_LIST_ENTRY::PhysicalDeviceObject, _ARBITER_LIST_ENTRY::Result, _ARBITER_LIST_ENTRY::SelectedAlternative, _ARBITER_ALLOCATION_STATE::Start, and TRUE. Referenced by ArbInitializeArbiterInstance().
|
|
Definition at line 1414 of file arbiter.c. References Action, ARB_PRINT, ArbAcquireArbiterLock, ARBITER_ACTION, ARBITER_INSTANCE_SIGNATURE, ArbiterActionAddReserved, ArbiterActionBootAllocation, ArbiterActionCommitAllocation, ArbiterActionQueryAllocatedResources, ArbiterActionQueryArbitrate, ArbiterActionQueryConflict, ArbiterActionRetestAllocation, ArbiterActionRollbackAllocation, ArbiterActionTestAllocation, ArbiterActionWriteReservedResources, ArbpActionStrings, ArbReleaseArbiterLock, ArbReplayOnError, ArbStopOnError, ASSERT, FALSE, NT_SUCCESS, NTSTATUS(), NULL, PAGED_CODE, PARBITER_INSTANCE, PARBITER_PARAMETERS, and TRUE. Referenced by IopPnPDispatch().
|
|
Definition at line 2238 of file arbiter.c. References ARB_PRINT, ASSERT, NT_SUCCESS, NTSTATUS(), PAGED_CODE, and RtlDeleteRange(). Referenced by ArbInitializeArbiterInstance(), and IopPortBacktrackAllocation().
|
|
Definition at line 1252 of file arbiter.c. References _ARBITER_ALTERNATIVE::Alignment, _ARBITER_LIST_ENTRY::AlternativeCount, _ARBITER_ALLOCATION_STATE::AlternativeCount, _ARBITER_LIST_ENTRY::Alternatives, _ARBITER_ALLOCATION_STATE::Alternatives, ARB_PRINT, ARBITER_ALTERNATIVE_FLAG_FIXED, ARBITER_ALTERNATIVE_FLAG_INVALID, ARBITER_ALTERNATIVE_FLAG_SHARED, ARBITER_RANGE_BOOT_ALLOCATED, ARBITER_STATE_FLAG_BOOT, ArbpBuildAlternative(), ASSERT, _ARBITER_ALLOCATION_STATE::CurrentAlternative, _ARBITER_ALLOCATION_STATE::End, _ARBITER_ALLOCATION_STATE::Entry, _ARBITER_ALTERNATIVE::Flags, _ARBITER_ALLOCATION_STATE::Flags, FOR_ALL_IN_LIST, _ARBITER_ALTERNATIVE::Length, LENGTH_OF, _ARBITER_ALTERNATIVE::Maximum, _ARBITER_ALTERNATIVE::Minimum, NT_SUCCESS, NTSTATUS(), _ARBITER_LIST_ENTRY::PhysicalDeviceObject, _ARBITER_ALLOCATION_STATE::RangeAttributes, _ARBITER_ALLOCATION_STATE::RangeAvailableAttributes, RtlCopyRangeList(), RtlFreeRangeList(), _ARBITER_ALLOCATION_STATE::Start, and _ARBITER_ALLOCATION_STATE::WorkSpace. Referenced by ArbInitializeArbiterInstance().
|
|
Definition at line 1622 of file arbiter.c. References ARB_PRINT, ArbAcquireArbiterLock, ArbAddOrdering(), ArbFreeOrderingList(), ArbInitializeOrderingList(), ArbpGetRegistryValue(), ArbPruneOrdering(), ArbpWstrToUnicodeString, ArbReleaseArbiterLock, ASSERT, dummy(), _ARBITER_ORDERING::End, ExFreePool(), FOR_ALL_IN_ARRAY, FULL_INFO_DATA, KEY_ALLOCATIONORDER, KEY_RESERVEDRESOURCES, NT_SUCCESS, NTSTATUS(), NULL, PAGED_CODE, PARBITER_ORDERING, PATH_ARBITERS, and _ARBITER_ORDERING::Start. Referenced by ArbInitializeArbiterInstance().
|
|
Definition at line 1026 of file arbiter.c. References PAGED_CODE, and RtlFreeRangeList(). Referenced by ArbInitializeArbiterInstance().
|
|
|
|
Definition at line 2971 of file arbiter.c. References ARBITER_ORDERING, ARBITER_ORDERING_LIST_TAG, ASSERT, ExAllocatePoolWithTag, NULL, PAGED_CODE, and PagedPool.
|
|
Definition at line 469 of file arbiter.c. References ArbFreeOrderingList(), ARBITER_INSTANCE, ExFreePool(), PAGED_CODE, and RtlFreeRangeList(). Referenced by ArbDereferenceArbiterInstance().
|
|
Definition at line 2065 of file arbiter.c. References _ARBITER_ALTERNATIVE::Alignment, ARBITER_ALTERNATIVE_FLAG_SHARED, ARBITER_RANGE_BOOT_ALLOCATED, ARBITER_STATE_FLAG_NULL_CONFLICT_OK, ArbiterRequestLegacyAssigned, ArbiterRequestLegacyReported, ASSERT, _ARBITER_ALLOCATION_STATE::CurrentAlternative, _ARBITER_ALLOCATION_STATE::CurrentMaximum, _ARBITER_ALLOCATION_STATE::CurrentMinimum, _ARBITER_ALLOCATION_STATE::End, _ARBITER_ALLOCATION_STATE::Entry, FALSE, _ARBITER_ALTERNATIVE::Flags, _ARBITER_ALLOCATION_STATE::Flags, _ARBITER_ALTERNATIVE::Length, NT_SUCCESS, NTSTATUS(), PAGED_CODE, _ARBITER_ALLOCATION_STATE::RangeAvailableAttributes, _ARBITER_LIST_ENTRY::RequestSource, RtlFindRange(), _ARBITER_ALLOCATION_STATE::Start, and TRUE. Referenced by ArbInitializeArbiterInstance(), and IopMemFindSuitableRange().
|
|
Referenced by ArbBuildAssignmentOrdering(), and ArbDeleteArbiterInstance(). |
|
|
|
Definition at line 192 of file arbiter.c. References ARB_PRINT, ArbAddAllocation(), ArbAddReserved(), ArbAllocateEntry(), ArbBacktrackAllocation(), ArbBootAllocation(), ArbBuildAssignmentOrdering(), ArbCommitAllocation(), ArbFindSuitableRange(), ArbGetNextAllocationRange(), ARBITER_ALLOCATION_STATE_TAG, ARBITER_INSTANCE_SIGNATURE, ARBITER_MISC_TAG, ARBITER_RANGE_LIST_TAG, ArbOverrideConflict(), ArbPreprocessEntry(), ArbQueryConflict(), ArbRetestAllocation(), ArbRollbackAllocation(), ArbStartArbiter(), ArbTestAllocation(), ASSERT, ExAllocatePoolWithTag, ExFreePool(), FALSE, INITIAL_ALLOCATION_STATE_SIZE, KeInitializeEvent, Name, NonPagedPool, NT_SUCCESS, NTSTATUS(), NULL, PAGED_CODE, PagedPool, PARBITER_TRANSLATE_ALLOCATION_ORDER, RtlInitializeRangeList(), and TRUE. Referenced by IopBusNumberInitialize(), IopDmaInitialize(), IopIrqInitialize(), IopMemInitialize(), and IopPortInitialize().
|
|
Definition at line 2927 of file arbiter.c. References ARBITER_ORDERING, ARBITER_ORDERING_LIST_INITIAL_SIZE, ARBITER_ORDERING_LIST_TAG, ASSERT, ExAllocatePoolWithTag, List, PAGED_CODE, PagedPool, and PARBITER_ORDERING_LIST. Referenced by ArbBuildAssignmentOrdering().
|
|
Definition at line 3383 of file arbiter.c. References ARBITER_ALTERNATIVE_FLAG_FIXED, FALSE, INTERSECT, PAGED_CODE, and TRUE. Referenced by ArbInitializeArbiterInstance().
|
|
Definition at line 2295 of file arbiter.c. References PAGED_CODE. Referenced by ArbInitializeArbiterInstance().
|
|
Definition at line 3120 of file arbiter.c. References ARBITER_ORDERING, ARBITER_ORDERING_LIST_TAG, ASSERT, _ARBITER_ORDERING::End, End, ExAllocatePoolWithTag, ExFreePool(), FOR_ALL_IN_ARRAY, NTSTATUS(), NULL, PagedPool, _ARBITER_ORDERING::Start, Start, and USHORT. Referenced by ArbBuildAssignmentOrdering().
|
|
Definition at line 3695 of file arbiter.c. References _ARBITER_ALLOCATION_STATE::AlternativeCount, _ARBITER_ALLOCATION_STATE::Alternatives, ARB_PRINT, ARBITER_CONFLICT_INFO, ARBITER_CONFLICT_INFO_TAG, ARBITER_STATE_FLAG_CONFLICT, ArbiterRequestPnpEnumerated, ArbpBuildAlternative(), ArbpQueryConflictCallback(), ASSERT, _ARBITER_LIST_ENTRY::BusNumber, _ARBITER_ALLOCATION_STATE::CurrentAlternative, _ARBITER_ALLOCATION_STATE::CurrentMaximum, _ARBITER_ALLOCATION_STATE::CurrentMinimum, DevicePropertyBusNumber, DevicePropertyLegacyBusType, _ARBITER_CONFLICT_INFO::End, _ARBITER_ALLOCATION_STATE::End, _ARBITER_ALLOCATION_STATE::Entry, ExAllocatePoolWithTag, ExFreePool(), FALSE, _ARBITER_ALLOCATION_STATE::Flags, _ARBITER_LIST_ENTRY::InterfaceType, IoGetDeviceProperty(), _ARBITER_ALTERNATIVE::Maximum, _ARBITER_ALTERNATIVE::Minimum, NT_SUCCESS, NTSTATUS(), NULL, _ARBITER_CONFLICT_INFO::OwningObject, PAGED_CODE, PagedPool, PARBITER_CONFLICT_INFO, _ARBITER_LIST_ENTRY::PhysicalDeviceObject, _ARBITER_LIST_ENTRY::RequestSource, RtlCopyRangeList(), RtlDeleteOwnersRanges(), RtlDeleteRange(), RtlFreeRangeList(), RtlInitializeRangeList(), _ARBITER_CONFLICT_INFO::Start, _ARBITER_ALLOCATION_STATE::Start, and TRUE. Referenced by ArbInitializeArbiterInstance().
|
|
Definition at line 1105 of file arbiter.c. References _ARBITER_ALLOCATION_STATE::AlternativeCount, _ARBITER_ALLOCATION_STATE::Alternatives, ARB_PRINT, ARBITER_STATE_FLAG_RETEST, ArbpBuildAlternative(), ASSERT, _ARBITER_LIST_ENTRY::Assignment, _ARBITER_ALLOCATION_STATE::CurrentAlternative, _ARBITER_ALLOCATION_STATE::End, _ARBITER_ALLOCATION_STATE::Entry, _ARBITER_ALLOCATION_STATE::Flags, FOR_ALL_IN_LIST, NT_SUCCESS, NTSTATUS(), PAGED_CODE, _ARBITER_LIST_ENTRY::PhysicalDeviceObject, RtlCopyRangeList(), RtlDeleteOwnersRanges(), RtlFreeRangeList(), _ARBITER_LIST_ENTRY::SelectedAlternative, _ARBITER_ALLOCATION_STATE::Start, and _ARBITER_ALLOCATION_STATE::WorkSpace. Referenced by ArbInitializeArbiterInstance().
|
|
|
|
Definition at line 955 of file arbiter.c. References ARB_PRINT, FALSE, _ARBITER_LIST_ENTRY::ListEntry, PAGED_CODE, TRUE, and _ARBITER_LIST_ENTRY::WorkSpace. Referenced by ArbTestAllocation().
|
|
Definition at line 3996 of file arbiter.c. References PAGED_CODE. Referenced by ArbInitializeArbiterInstance().
|
|
Definition at line 506 of file arbiter.c. References _ARBITER_LIST_ENTRY::AlternativeCount, _ARBITER_LIST_ENTRY::Alternatives, ARB_PRINT, ARBITER_LIST_ENTRY, ArbpBuildAllocationStack(), ArbSortArbitrationList(), ASSERT, FOR_ALL_IN_ARRAY, FOR_ALL_IN_LIST, NT_SUCCESS, NTSTATUS(), NULL, PAGED_CODE, PARBITER_LIST_ENTRY, _ARBITER_LIST_ENTRY::PhysicalDeviceObject, RtlCopyRangeList(), RtlDeleteOwnersRanges(), RtlFreeRangeList(), and _ARBITER_LIST_ENTRY::WorkSpace. Referenced by ArbInitializeArbiterInstance().
|