ReactOS 0.4.17-dev-573-g8315b8c
arbiter.c File Reference
#include <ntifs.h>
#include <ndk/rtlfuncs.h>
#include "arbiter.h"
#include <debug.h>
Include dependency graph for arbiter.c:

Go to the source code of this file.

Macros

#define NDEBUG
 
#define ARBITER_SIG   'sbrA'
 
#define TAG_ARBITER   'ibrA'
 

Functions

NTSTATUS NTAPI ArbTestAllocation (_In_ PARBITER_INSTANCE Arbiter, _Inout_ PLIST_ENTRY ArbitrationList)
 
NTSTATUS NTAPI ArbRetestAllocation (_In_ PARBITER_INSTANCE Arbiter, _Inout_ PLIST_ENTRY ArbitrationList)
 
NTSTATUS NTAPI ArbBootAllocation (_In_ PARBITER_INSTANCE Arbiter, _Inout_ PLIST_ENTRY ArbitrationList)
 
NTSTATUS NTAPI ArbAddReserved (_In_ PARBITER_INSTANCE Arbiter, _In_opt_ PIO_RESOURCE_DESCRIPTOR Requirement, _In_opt_ PCM_PARTIAL_RESOURCE_DESCRIPTOR Resource)
 
NTSTATUS NTAPI ArbQueryConflict (_In_ PARBITER_INSTANCE Arbiter, _In_ PDEVICE_OBJECT PhysicalDeviceObject, _In_ PIO_RESOURCE_DESCRIPTOR ConflictingResource, _Out_ PULONG ConflictCount, _Out_ PARBITER_CONFLICT_INFO *Conflicts)
 
NTSTATUS NTAPI ArbInitializeRangeList (_In_ PARBITER_INSTANCE Arbiter, _In_ ULONG ResourceCount, _In_ PCM_PARTIAL_RESOURCE_DESCRIPTOR Resources, _Inout_ PRTL_RANGE_LIST RangeList)
 
NTSTATUS NTAPI ArbCommitAllocation (_In_ PARBITER_INSTANCE Arbiter)
 
NTSTATUS NTAPI ArbRollbackAllocation (_In_ PARBITER_INSTANCE Arbiter)
 
NTSTATUS NTAPI ArbStartArbiter (_In_ PARBITER_INSTANCE Arbiter, _In_ PCM_RESOURCE_LIST StartResources)
 
NTSTATUS NTAPI ArbPreprocessEntry (_In_ PARBITER_INSTANCE Arbiter, _Inout_ PARBITER_ALLOCATION_STATE ArbState)
 
NTSTATUS NTAPI ArbAllocateEntry (_In_ PARBITER_INSTANCE Arbiter, _Inout_ PARBITER_ALLOCATION_STATE ArbState)
 
NTSTATUS NTAPI ArbSortArbitrationList (_Inout_ PLIST_ENTRY ArbitrationList)
 
BOOLEAN NTAPI ArbGetNextAllocationRange (_In_ PARBITER_INSTANCE Arbiter, _Inout_ PARBITER_ALLOCATION_STATE ArbState)
 
BOOLEAN NTAPI ArbFindSuitableRange (_In_ PARBITER_INSTANCE Arbiter, _Inout_ PARBITER_ALLOCATION_STATE ArbState)
 
VOID NTAPI ArbAddAllocation (_In_ PARBITER_INSTANCE Arbiter, _Inout_ PARBITER_ALLOCATION_STATE ArbState)
 
VOID NTAPI ArbBacktrackAllocation (_In_ PARBITER_INSTANCE Arbiter, _Inout_ PARBITER_ALLOCATION_STATE ArbState)
 
VOID NTAPI ArbConfirmAllocation (_In_ PARBITER_INSTANCE Arbiter, _Inout_ PARBITER_ALLOCATION_STATE ArbState)
 
BOOLEAN NTAPI ArbOverrideConflict (_In_ PARBITER_INSTANCE Arbiter, _Inout_ PARBITER_ALLOCATION_STATE ArbState)
 
NTSTATUS NTAPI ArbArbiterHandler (_In_ PVOID Context, _In_ ARBITER_ACTION Action, _Inout_ PARBITER_PARAMETERS Parameters)
 
NTSTATUS NTAPI ArbInitializeOrderingList (_Out_ PARBITER_ORDERING_LIST OrderingList)
 
VOID NTAPI ArbFreeOrderingList (_Inout_ PARBITER_ORDERING_LIST OrderingList)
 
NTSTATUS NTAPI ArbCopyOrderingList (_Out_ PARBITER_ORDERING_LIST Destination, _In_ PARBITER_ORDERING_LIST Source)
 
NTSTATUS NTAPI ArbAddOrdering (_Inout_ PARBITER_ORDERING_LIST OrderingList, _In_ UINT64 Start, _In_ UINT64 End)
 
NTSTATUS NTAPI ArbPruneOrdering (_Inout_ PARBITER_ORDERING_LIST OrderingList, _In_ UINT64 Start, _In_ UINT64 End)
 
NTSTATUS NTAPI ArbBuildAssignmentOrdering (_Inout_ PARBITER_INSTANCE Arbiter, _In_ PCWSTR AllocationOrderName, _In_ PCWSTR ReservedResourcesName, _In_opt_ PARB_TRANSLATE_ORDERING TranslateOrderingFunction)
 
VOID NTAPI ArbDeleteArbiterInstance (_In_ PARBITER_INSTANCE Arbiter)
 
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)
 

Macro Definition Documentation

◆ ARBITER_SIG

#define ARBITER_SIG   'sbrA'

Definition at line 17 of file arbiter.c.

◆ NDEBUG

#define NDEBUG

Definition at line 14 of file arbiter.c.

◆ TAG_ARBITER

#define TAG_ARBITER   'ibrA'

Definition at line 18 of file arbiter.c.

Function Documentation

◆ ArbAddAllocation()

VOID NTAPI ArbAddAllocation ( _In_ PARBITER_INSTANCE  Arbiter,
_Inout_ PARBITER_ALLOCATION_STATE  ArbState 
)

Definition at line 214 of file arbiter.c.

217{
218 PAGED_CODE();
219
221}
#define PAGED_CODE()
#define UNIMPLEMENTED
Definition: ntoskrnl.c:15

Referenced by ArbInitializeArbiterInstance().

◆ ArbAddOrdering()

NTSTATUS NTAPI ArbAddOrdering ( _Inout_ PARBITER_ORDERING_LIST  OrderingList,
_In_ UINT64  Start,
_In_ UINT64  End 
)

Definition at line 313 of file arbiter.c.

317{
318 PAGED_CODE();
319
322}
#define STATUS_NOT_IMPLEMENTED
Definition: d3dkmdt.h:42

◆ ArbAddReserved()

Definition at line 66 of file arbiter.c.

70{
71 PAGED_CODE();
72
75}

Referenced by ArbInitializeArbiterInstance().

◆ ArbAllocateEntry()

NTSTATUS NTAPI ArbAllocateEntry ( _In_ PARBITER_INSTANCE  Arbiter,
_Inout_ PARBITER_ALLOCATION_STATE  ArbState 
)

Definition at line 163 of file arbiter.c.

166{
167 PAGED_CODE();
168
171}

Referenced by ArbInitializeArbiterInstance().

◆ ArbArbiterHandler()

NTSTATUS NTAPI ArbArbiterHandler ( _In_ PVOID  Context,
_In_ ARBITER_ACTION  Action,
_Inout_ PARBITER_PARAMETERS  Parameters 
)

Definition at line 263 of file arbiter.c.

267{
268 PAGED_CODE();
269
272}

◆ ArbBacktrackAllocation()

VOID NTAPI ArbBacktrackAllocation ( _In_ PARBITER_INSTANCE  Arbiter,
_Inout_ PARBITER_ALLOCATION_STATE  ArbState 
)

Definition at line 226 of file arbiter.c.

229{
230 PAGED_CODE();
231
233}

Referenced by ArbInitializeArbiterInstance().

◆ ArbBootAllocation()

NTSTATUS NTAPI ArbBootAllocation ( _In_ PARBITER_INSTANCE  Arbiter,
_Inout_ PLIST_ENTRY  ArbitrationList 
)

Definition at line 53 of file arbiter.c.

56{
57 PAGED_CODE();
58
61}

Referenced by ArbInitializeArbiterInstance().

◆ ArbBuildAssignmentOrdering()

NTSTATUS NTAPI ArbBuildAssignmentOrdering ( _Inout_ PARBITER_INSTANCE  Arbiter,
_In_ PCWSTR  AllocationOrderName,
_In_ PCWSTR  ReservedResourcesName,
_In_opt_ PARB_TRANSLATE_ORDERING  TranslateOrderingFunction 
)

Definition at line 341 of file arbiter.c.

346{
347 PAGED_CODE();
348
350 return STATUS_SUCCESS;
351}
#define STATUS_SUCCESS
Definition: shellext.h:65

Referenced by ArbInitializeArbiterInstance(), and ario_ApplyBrokenVideoHack().

◆ ArbCommitAllocation()

NTSTATUS NTAPI ArbCommitAllocation ( _In_ PARBITER_INSTANCE  Arbiter)

Definition at line 113 of file arbiter.c.

115{
116 PAGED_CODE();
117
120}

Referenced by ArbInitializeArbiterInstance().

◆ ArbConfirmAllocation()

VOID NTAPI ArbConfirmAllocation ( _In_ PARBITER_INSTANCE  Arbiter,
_Inout_ PARBITER_ALLOCATION_STATE  ArbState 
)

Definition at line 238 of file arbiter.c.

241{
242 PAGED_CODE();
243
245}

◆ ArbCopyOrderingList()

NTSTATUS NTAPI ArbCopyOrderingList ( _Out_ PARBITER_ORDERING_LIST  Destination,
_In_ PARBITER_ORDERING_LIST  Source 
)

Definition at line 300 of file arbiter.c.

303{
304 PAGED_CODE();
305
308}

◆ ArbDeleteArbiterInstance()

VOID NTAPI ArbDeleteArbiterInstance ( _In_ PARBITER_INSTANCE  Arbiter)

Definition at line 356 of file arbiter.c.

358{
359 PAGED_CODE();
360
361 if (Arbiter->PossibleAllocation)
362 {
363 RtlFreeRangeList(Arbiter->PossibleAllocation);
364 ExFreePoolWithTag(Arbiter->PossibleAllocation, TAG_ARBITER);
365 Arbiter->PossibleAllocation = NULL;
366 }
367
368 if (Arbiter->Allocation)
369 {
370 RtlFreeRangeList(Arbiter->Allocation);
371 ExFreePoolWithTag(Arbiter->Allocation, TAG_ARBITER);
372 Arbiter->Allocation = NULL;
373 }
374
375 if (Arbiter->AllocationStack)
376 {
377 ExFreePoolWithTag(Arbiter->AllocationStack, TAG_ARBITER);
378 Arbiter->AllocationStack = NULL;
379 Arbiter->AllocationStackMaxSize = 0;
380 }
381
382#if (NTDDI_VERSION >= NTDDI_VISTA)
383 if (Arbiter->TransactionEvent)
384 {
385 ExFreePoolWithTag(Arbiter->TransactionEvent, TAG_ARBITER);
386 Arbiter->TransactionEvent = NULL;
387 }
388#endif
389
390 if (Arbiter->MutexEvent)
391 {
392 ExFreePoolWithTag(Arbiter->MutexEvent, TAG_ARBITER);
393 Arbiter->MutexEvent = NULL;
394 }
395}
#define TAG_ARBITER
Definition: arbiter.c:18
#define NULL
Definition: types.h:112
#define ExFreePoolWithTag(_P, _T)
Definition: module.h:1109
NTSYSAPI VOID NTAPI RtlFreeRangeList(_In_ PRTL_RANGE_LIST RangeList)

Referenced by ArbInitializeArbiterInstance().

◆ ArbFindSuitableRange()

BOOLEAN NTAPI ArbFindSuitableRange ( _In_ PARBITER_INSTANCE  Arbiter,
_Inout_ PARBITER_ALLOCATION_STATE  ArbState 
)

Definition at line 201 of file arbiter.c.

204{
205 PAGED_CODE();
206
208 return FALSE;
209}
#define FALSE
Definition: types.h:117

Referenced by ArbInitializeArbiterInstance().

◆ ArbFreeOrderingList()

VOID NTAPI ArbFreeOrderingList ( _Inout_ PARBITER_ORDERING_LIST  OrderingList)

Definition at line 289 of file arbiter.c.

291{
292 PAGED_CODE();
293
295}

Referenced by ario_ApplyBrokenVideoHack().

◆ ArbGetNextAllocationRange()

BOOLEAN NTAPI ArbGetNextAllocationRange ( _In_ PARBITER_INSTANCE  Arbiter,
_Inout_ PARBITER_ALLOCATION_STATE  ArbState 
)

Definition at line 188 of file arbiter.c.

191{
192 PAGED_CODE();
193
195 return FALSE;
196}

Referenced by ArbInitializeArbiterInstance().

◆ ArbInitializeArbiterInstance()

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 
)

Definition at line 400 of file arbiter.c.

407{
409
410 PAGED_CODE();
411
412 DPRINT("ArbInitializeArbiterInstance: '%S'\n", ArbiterName);
413
414 ASSERT(Arbiter->UnpackRequirement != NULL);
415 ASSERT(Arbiter->PackResource != NULL);
416 ASSERT(Arbiter->UnpackResource != NULL);
417 ASSERT(Arbiter->MutexEvent == NULL);
418 ASSERT(Arbiter->Allocation == NULL);
419 ASSERT(Arbiter->PossibleAllocation == NULL);
420 ASSERT(Arbiter->AllocationStack == NULL);
421
422 Arbiter->Signature = ARBITER_SIG;
423 Arbiter->BusDeviceObject = BusDeviceObject;
424 Arbiter->Name = ArbiterName;
425 Arbiter->ResourceType = ResourceType;
426 Arbiter->TransactionInProgress = FALSE;
427#if (NTDDI_VERSION >= NTDDI_VISTA)
428 Arbiter->OrderingName = OrderName;
429#endif
430
431 /* The per-instance lock: a signaled synchronization event used as a mutex. */
432 Arbiter->MutexEvent = ExAllocatePoolWithTag(NonPagedPool, sizeof(KEVENT), TAG_ARBITER);
433 if (!Arbiter->MutexEvent)
434 {
436 goto Failure;
437 }
438 KeInitializeEvent(Arbiter->MutexEvent, SynchronizationEvent, TRUE);
439
440#if (NTDDI_VERSION >= NTDDI_VISTA)
441 /* Vista+: a notification event exposing whether a Test is outstanding. */
442 Arbiter->TransactionEvent = ExAllocatePoolWithTag(NonPagedPool, sizeof(KEVENT), TAG_ARBITER);
443 if (!Arbiter->TransactionEvent)
444 {
446 goto Failure;
447 }
448 KeInitializeEvent(Arbiter->TransactionEvent, NotificationEvent, TRUE);
449#endif
450
451 Arbiter->AllocationStack = ExAllocatePoolWithTag(PagedPool, PAGE_SIZE, TAG_ARBITER);
452 if (!Arbiter->AllocationStack)
453 {
455 goto Failure;
456 }
457 Arbiter->AllocationStackMaxSize = PAGE_SIZE;
458 Arbiter->Allocation = ExAllocatePoolWithTag(PagedPool, sizeof(RTL_RANGE_LIST), TAG_ARBITER);
459 if (!Arbiter->Allocation)
460 {
462 goto Failure;
463 }
464 RtlInitializeRangeList(Arbiter->Allocation);
465
466 Arbiter->PossibleAllocation = ExAllocatePoolWithTag(PagedPool, sizeof(RTL_RANGE_LIST), TAG_ARBITER);
467 if (!Arbiter->PossibleAllocation)
468 {
470 goto Failure;
471 }
472 RtlInitializeRangeList(Arbiter->PossibleAllocation);
473
474 if (!Arbiter->TestAllocation)
475 Arbiter->TestAllocation = ArbTestAllocation;
476 if (!Arbiter->RetestAllocation)
477 Arbiter->RetestAllocation = ArbRetestAllocation;
478 if (!Arbiter->CommitAllocation)
479 Arbiter->CommitAllocation = ArbCommitAllocation;
480 if (!Arbiter->RollbackAllocation)
481 Arbiter->RollbackAllocation = ArbRollbackAllocation;
482 if (!Arbiter->BootAllocation)
483 Arbiter->BootAllocation = ArbBootAllocation;
484 if (!Arbiter->AddReserved)
485 Arbiter->AddReserved = ArbAddReserved;
486 if (!Arbiter->QueryConflict)
487 Arbiter->QueryConflict = ArbQueryConflict;
488 if (!Arbiter->StartArbiter)
489 Arbiter->StartArbiter = ArbStartArbiter;
490 if (!Arbiter->PreprocessEntry)
491 Arbiter->PreprocessEntry = ArbPreprocessEntry;
492 if (!Arbiter->AllocateEntry)
493 Arbiter->AllocateEntry = ArbAllocateEntry;
494 if (!Arbiter->GetNextAllocationRange)
495 Arbiter->GetNextAllocationRange = ArbGetNextAllocationRange;
496 if (!Arbiter->FindSuitableRange)
497 Arbiter->FindSuitableRange = ArbFindSuitableRange;
498 if (!Arbiter->AddAllocation)
499 Arbiter->AddAllocation = ArbAddAllocation;
500 if (!Arbiter->BacktrackAllocation)
501 Arbiter->BacktrackAllocation = ArbBacktrackAllocation;
502 if (!Arbiter->OverrideConflict)
503 Arbiter->OverrideConflict = ArbOverrideConflict;
504#if (NTDDI_VERSION >= NTDDI_VISTA)
505 if (!Arbiter->InitializeRangeList)
506 Arbiter->InitializeRangeList = ArbInitializeRangeList;
507#endif
508
509 Status = ArbBuildAssignmentOrdering(Arbiter, OrderName, OrderName, TranslateOrderingFunction);
510 if (!NT_SUCCESS(Status))
511 {
512 DPRINT1("ArbInitializeArbiterInstance: ArbBuildAssignmentOrdering failed, Status %X\n", Status);
513 goto Failure;
514 }
515
516 return STATUS_SUCCESS;
517
518Failure:
519 DPRINT1("ArbInitializeArbiterInstance: '%S' failed, Status %X\n", ArbiterName, Status);
521 return Status;
522}
BOOLEAN NTAPI ArbGetNextAllocationRange(_In_ PARBITER_INSTANCE Arbiter, _Inout_ PARBITER_ALLOCATION_STATE ArbState)
Definition: arbiter.c:188
VOID NTAPI ArbAddAllocation(_In_ PARBITER_INSTANCE Arbiter, _Inout_ PARBITER_ALLOCATION_STATE ArbState)
Definition: arbiter.c:214
NTSTATUS NTAPI ArbInitializeRangeList(_In_ PARBITER_INSTANCE Arbiter, _In_ ULONG ResourceCount, _In_ PCM_PARTIAL_RESOURCE_DESCRIPTOR Resources, _Inout_ PRTL_RANGE_LIST RangeList)
Definition: arbiter.c:97
VOID NTAPI ArbDeleteArbiterInstance(_In_ PARBITER_INSTANCE Arbiter)
Definition: arbiter.c:356
BOOLEAN NTAPI ArbFindSuitableRange(_In_ PARBITER_INSTANCE Arbiter, _Inout_ PARBITER_ALLOCATION_STATE ArbState)
Definition: arbiter.c:201
NTSTATUS NTAPI ArbQueryConflict(_In_ PARBITER_INSTANCE Arbiter, _In_ PDEVICE_OBJECT PhysicalDeviceObject, _In_ PIO_RESOURCE_DESCRIPTOR ConflictingResource, _Out_ PULONG ConflictCount, _Out_ PARBITER_CONFLICT_INFO *Conflicts)
Definition: arbiter.c:80
NTSTATUS NTAPI ArbCommitAllocation(_In_ PARBITER_INSTANCE Arbiter)
Definition: arbiter.c:113
BOOLEAN NTAPI ArbOverrideConflict(_In_ PARBITER_INSTANCE Arbiter, _Inout_ PARBITER_ALLOCATION_STATE ArbState)
Definition: arbiter.c:250
NTSTATUS NTAPI ArbPreprocessEntry(_In_ PARBITER_INSTANCE Arbiter, _Inout_ PARBITER_ALLOCATION_STATE ArbState)
Definition: arbiter.c:150
NTSTATUS NTAPI ArbTestAllocation(_In_ PARBITER_INSTANCE Arbiter, _Inout_ PLIST_ENTRY ArbitrationList)
Definition: arbiter.c:27
NTSTATUS NTAPI ArbStartArbiter(_In_ PARBITER_INSTANCE Arbiter, _In_ PCM_RESOURCE_LIST StartResources)
Definition: arbiter.c:137
NTSTATUS NTAPI ArbAddReserved(_In_ PARBITER_INSTANCE Arbiter, _In_opt_ PIO_RESOURCE_DESCRIPTOR Requirement, _In_opt_ PCM_PARTIAL_RESOURCE_DESCRIPTOR Resource)
Definition: arbiter.c:66
VOID NTAPI ArbBacktrackAllocation(_In_ PARBITER_INSTANCE Arbiter, _Inout_ PARBITER_ALLOCATION_STATE ArbState)
Definition: arbiter.c:226
NTSTATUS NTAPI ArbBootAllocation(_In_ PARBITER_INSTANCE Arbiter, _Inout_ PLIST_ENTRY ArbitrationList)
Definition: arbiter.c:53
NTSTATUS NTAPI ArbAllocateEntry(_In_ PARBITER_INSTANCE Arbiter, _Inout_ PARBITER_ALLOCATION_STATE ArbState)
Definition: arbiter.c:163
NTSTATUS NTAPI ArbRetestAllocation(_In_ PARBITER_INSTANCE Arbiter, _Inout_ PLIST_ENTRY ArbitrationList)
Definition: arbiter.c:40
#define ARBITER_SIG
Definition: arbiter.c:17
NTSTATUS NTAPI ArbBuildAssignmentOrdering(_Inout_ PARBITER_INSTANCE Arbiter, _In_ PCWSTR AllocationOrderName, _In_ PCWSTR ReservedResourcesName, _In_opt_ PARB_TRANSLATE_ORDERING TranslateOrderingFunction)
Definition: arbiter.c:341
NTSTATUS NTAPI ArbRollbackAllocation(_In_ PARBITER_INSTANCE Arbiter)
Definition: arbiter.c:125
LONG NTSTATUS
Definition: precomp.h:26
#define DPRINT1
Definition: precomp.h:8
#define TRUE
Definition: types.h:120
#define NT_SUCCESS(StatCode)
Definition: apphelp.c:33
#define ExAllocatePoolWithTag(hernya, size, tag)
Definition: env_spec_w32.h:350
#define KeInitializeEvent(pEvt, foo, foo2)
Definition: env_spec_w32.h:477
#define PAGE_SIZE
Definition: env_spec_w32.h:49
#define NonPagedPool
Definition: env_spec_w32.h:307
#define PagedPool
Definition: env_spec_w32.h:308
Status
Definition: gdiplustypes.h:24
#define ASSERT(a)
Definition: mode.c:44
NTSYSAPI VOID NTAPI RtlInitializeRangeList(_Out_ PRTL_RANGE_LIST RangeList)
@ NotificationEvent
@ SynchronizationEvent
#define DPRINT
Definition: sndvol32.h:73
#define STATUS_INSUFFICIENT_RESOURCES
Definition: udferr_usr.h:158

Referenced by arbusno_Initializer(), IopArbBusNumberInitialize(), IopArbDmaInitialize(), IopArbIrqInitialize(), IopArbMemInitialize(), and IopArbPortInitialize().

◆ ArbInitializeOrderingList()

NTSTATUS NTAPI ArbInitializeOrderingList ( _Out_ PARBITER_ORDERING_LIST  OrderingList)

Definition at line 277 of file arbiter.c.

279{
280 PAGED_CODE();
281
284}

◆ ArbInitializeRangeList()

NTSTATUS NTAPI ArbInitializeRangeList ( _In_ PARBITER_INSTANCE  Arbiter,
_In_ ULONG  ResourceCount,
_In_ PCM_PARTIAL_RESOURCE_DESCRIPTOR  Resources,
_Inout_ PRTL_RANGE_LIST  RangeList 
)

Definition at line 97 of file arbiter.c.

102{
103 PAGED_CODE();
104
107}

Referenced by ArbInitializeArbiterInstance().

◆ ArbOverrideConflict()

BOOLEAN NTAPI ArbOverrideConflict ( _In_ PARBITER_INSTANCE  Arbiter,
_Inout_ PARBITER_ALLOCATION_STATE  ArbState 
)

Definition at line 250 of file arbiter.c.

253{
254 PAGED_CODE();
255
257 return FALSE;
258}

Referenced by ArbInitializeArbiterInstance().

◆ ArbPreprocessEntry()

NTSTATUS NTAPI ArbPreprocessEntry ( _In_ PARBITER_INSTANCE  Arbiter,
_Inout_ PARBITER_ALLOCATION_STATE  ArbState 
)

Definition at line 150 of file arbiter.c.

153{
154 PAGED_CODE();
155
157 return STATUS_SUCCESS;
158}

Referenced by ArbInitializeArbiterInstance().

◆ ArbPruneOrdering()

NTSTATUS NTAPI ArbPruneOrdering ( _Inout_ PARBITER_ORDERING_LIST  OrderingList,
_In_ UINT64  Start,
_In_ UINT64  End 
)

Definition at line 327 of file arbiter.c.

331{
332 PAGED_CODE();
333
336}

◆ ArbQueryConflict()

NTSTATUS NTAPI ArbQueryConflict ( _In_ PARBITER_INSTANCE  Arbiter,
_In_ PDEVICE_OBJECT  PhysicalDeviceObject,
_In_ PIO_RESOURCE_DESCRIPTOR  ConflictingResource,
_Out_ PULONG  ConflictCount,
_Out_ PARBITER_CONFLICT_INFO Conflicts 
)

Definition at line 80 of file arbiter.c.

86{
87 PAGED_CODE();
88
91}

Referenced by ArbInitializeArbiterInstance().

◆ ArbRetestAllocation()

NTSTATUS NTAPI ArbRetestAllocation ( _In_ PARBITER_INSTANCE  Arbiter,
_Inout_ PLIST_ENTRY  ArbitrationList 
)

Definition at line 40 of file arbiter.c.

43{
44 PAGED_CODE();
45
48}

Referenced by ArbInitializeArbiterInstance().

◆ ArbRollbackAllocation()

NTSTATUS NTAPI ArbRollbackAllocation ( _In_ PARBITER_INSTANCE  Arbiter)

Definition at line 125 of file arbiter.c.

127{
128 PAGED_CODE();
129
132}

Referenced by ArbInitializeArbiterInstance().

◆ ArbSortArbitrationList()

NTSTATUS NTAPI ArbSortArbitrationList ( _Inout_ PLIST_ENTRY  ArbitrationList)

Definition at line 176 of file arbiter.c.

178{
179 PAGED_CODE();
180
183}

◆ ArbStartArbiter()

NTSTATUS NTAPI ArbStartArbiter ( _In_ PARBITER_INSTANCE  Arbiter,
_In_ PCM_RESOURCE_LIST  StartResources 
)

Definition at line 137 of file arbiter.c.

140{
141 PAGED_CODE();
142
145}

Referenced by ArbInitializeArbiterInstance().

◆ ArbTestAllocation()

NTSTATUS NTAPI ArbTestAllocation ( _In_ PARBITER_INSTANCE  Arbiter,
_Inout_ PLIST_ENTRY  ArbitrationList 
)

Definition at line 27 of file arbiter.c.

30{
31 PAGED_CODE();
32
35}

Referenced by ArbInitializeArbiterInstance().