ReactOS 0.4.17-dev-683-g0dafdc5
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'
 

Functions

NTSTATUS NTAPI ArbiterLibTestAllocation (_In_ PARBITER_INSTANCE Arbiter, _Inout_ PARBITER_TEST_ALLOCATION_PARAMETERS Parameters)
 
NTSTATUS NTAPI ArbiterLibRetestAllocation (_In_ PARBITER_INSTANCE Arbiter, _Inout_ PARBITER_RETEST_ALLOCATION_PARAMETERS Parameters)
 
NTSTATUS NTAPI ArbiterLibBootAllocation (_In_ PARBITER_INSTANCE Arbiter, _Inout_ PARBITER_BOOT_ALLOCATION_PARAMETERS Parameters)
 
NTSTATUS NTAPI ArbiterLibAddReserved (_In_ PARBITER_INSTANCE Arbiter, _Inout_ PARBITER_ADD_RESERVED_PARAMETERS Parameters)
 
NTSTATUS NTAPI ArbiterLibQueryConflict (_In_ PARBITER_INSTANCE Arbiter, _Inout_ PARBITER_QUERY_CONFLICT_PARAMETERS Parameters)
 
NTSTATUS NTAPI ArbiterLibInitializeRangeList (_In_ PARBITER_INSTANCE Arbiter, _In_ ULONG ResourceCount, _In_ PCM_PARTIAL_RESOURCE_DESCRIPTOR Resources, _Inout_ PRTL_RANGE_LIST RangeList)
 
NTSTATUS NTAPI ArbiterLibCommitAllocation (_In_ PARBITER_INSTANCE Arbiter)
 
NTSTATUS NTAPI ArbiterLibRollbackAllocation (_In_ PARBITER_INSTANCE Arbiter)
 
NTSTATUS NTAPI ArbiterLibStartArbiter (_In_ PARBITER_INSTANCE Arbiter, _In_ PCM_RESOURCE_LIST StartResources)
 
NTSTATUS NTAPI ArbiterLibPreprocessEntry (_In_ PARBITER_INSTANCE Arbiter, _Inout_ PARBITER_ALLOCATION_STATE ArbState)
 
NTSTATUS NTAPI ArbiterLibAllocateEntry (_In_ PARBITER_INSTANCE Arbiter, _Inout_ PARBITER_ALLOCATION_STATE ArbState)
 
NTSTATUS NTAPI ArbiterLibSortArbitrationList (_Inout_ PLIST_ENTRY ArbitrationList)
 
BOOLEAN NTAPI ArbiterLibGetNextAllocationRange (_In_ PARBITER_INSTANCE Arbiter, _Inout_ PARBITER_ALLOCATION_STATE ArbState)
 
BOOLEAN NTAPI ArbiterLibFindSuitableRange (_In_ PARBITER_INSTANCE Arbiter, _Inout_ PARBITER_ALLOCATION_STATE ArbState)
 
VOID NTAPI ArbiterLibAddAllocation (_In_ PARBITER_INSTANCE Arbiter, _Inout_ PARBITER_ALLOCATION_STATE ArbState)
 
VOID NTAPI ArbiterLibBacktrackAllocation (_In_ PARBITER_INSTANCE Arbiter, _Inout_ PARBITER_ALLOCATION_STATE ArbState)
 
VOID NTAPI ArbiterLibConfirmAllocation (_In_ PARBITER_INSTANCE Arbiter, _Inout_ PARBITER_ALLOCATION_STATE ArbState)
 
BOOLEAN NTAPI ArbiterLibOverrideConflict (_In_ PARBITER_INSTANCE Arbiter, _Inout_ PARBITER_ALLOCATION_STATE ArbState)
 
NTSTATUS NTAPI ArbiterLibHandler (_In_ PVOID Context, _In_ ARBITER_ACTION Action, _Inout_ PARBITER_PARAMETERS Parameters)
 
VOID NTAPI ArbiterLibDeleteInstance (_In_ PARBITER_INSTANCE Arbiter)
 
NTSTATUS NTAPI ArbiterLibInitializeInstance (_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.

Function Documentation

◆ ArbiterLibAddAllocation()

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

Definition at line 239 of file arbiter.c.

242{
243 PAGED_CODE();
244
246}
#define PAGED_CODE()
#define UNIMPLEMENTED
Definition: ntoskrnl.c:15

Referenced by ArbiterLibInitializeInstance().

◆ ArbiterLibAddReserved()

NTSTATUS NTAPI ArbiterLibAddReserved ( _In_ PARBITER_INSTANCE  Arbiter,
_Inout_ PARBITER_ADD_RESERVED_PARAMETERS  Parameters 
)

Definition at line 80 of file arbiter.c.

89{
90 PAGED_CODE();
91
94}
#define STATUS_NOT_IMPLEMENTED
Definition: d3dkmdt.h:42

Referenced by ArbiterLibInitializeInstance().

◆ ArbiterLibAllocateEntry()

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

Definition at line 188 of file arbiter.c.

191{
192 PAGED_CODE();
193
196}

Referenced by ArbiterLibInitializeInstance().

◆ ArbiterLibBacktrackAllocation()

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

Definition at line 251 of file arbiter.c.

254{
255 PAGED_CODE();
256
258}

Referenced by ArbiterLibInitializeInstance().

◆ ArbiterLibBootAllocation()

NTSTATUS NTAPI ArbiterLibBootAllocation ( _In_ PARBITER_INSTANCE  Arbiter,
_Inout_ PARBITER_BOOT_ALLOCATION_PARAMETERS  Parameters 
)

Definition at line 61 of file arbiter.c.

69{
70 PAGED_CODE();
71
74}

Referenced by ArbiterLibInitializeInstance().

◆ ArbiterLibCommitAllocation()

NTSTATUS NTAPI ArbiterLibCommitAllocation ( _In_ PARBITER_INSTANCE  Arbiter)

Definition at line 138 of file arbiter.c.

140{
141 PAGED_CODE();
142
145}

Referenced by ArbiterLibInitializeInstance().

◆ ArbiterLibConfirmAllocation()

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

Definition at line 263 of file arbiter.c.

266{
267 PAGED_CODE();
268
270}

◆ ArbiterLibDeleteInstance()

VOID NTAPI ArbiterLibDeleteInstance ( _In_ PARBITER_INSTANCE  Arbiter)

Definition at line 302 of file arbiter.c.

304{
305 PAGED_CODE();
306
307 if (Arbiter->PossibleAllocation)
308 {
309 RtlFreeRangeList(Arbiter->PossibleAllocation);
310 ExFreePoolWithTag(Arbiter->PossibleAllocation, TAG_ARBITER);
311 Arbiter->PossibleAllocation = NULL;
312 }
313
314 if (Arbiter->Allocation)
315 {
316 RtlFreeRangeList(Arbiter->Allocation);
317 ExFreePoolWithTag(Arbiter->Allocation, TAG_ARBITER);
318 Arbiter->Allocation = NULL;
319 }
320
321 if (Arbiter->AllocationStack)
322 {
323 ExFreePoolWithTag(Arbiter->AllocationStack, TAG_ARBITER);
324 Arbiter->AllocationStack = NULL;
325 Arbiter->AllocationStackMaxSize = 0;
326 }
327
328 ArbiterLibFreeOrderingList(&Arbiter->OrderingList);
329 ArbiterLibFreeOrderingList(&Arbiter->ReservedList);
330
331#if (NTDDI_VERSION >= NTDDI_VISTA)
332 if (Arbiter->TransactionEvent)
333 {
334 ExFreePoolWithTag(Arbiter->TransactionEvent, TAG_ARBITER);
335 Arbiter->TransactionEvent = NULL;
336 }
337#endif
338
339 if (Arbiter->MutexEvent)
340 {
341 ExFreePoolWithTag(Arbiter->MutexEvent, TAG_ARBITER);
342 Arbiter->MutexEvent = NULL;
343 }
344}
#define TAG_ARBITER
Definition: arbiter.h:10
VOID NTAPI ArbiterLibFreeOrderingList(_Inout_ PARBITER_ORDERING_LIST OrderingList)
Definition: ordering.c:52
#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 ArbiterLibInitializeInstance().

◆ ArbiterLibFindSuitableRange()

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

Definition at line 226 of file arbiter.c.

229{
230 PAGED_CODE();
231
233 return FALSE;
234}
#define FALSE
Definition: types.h:117

Referenced by ArbiterLibInitializeInstance().

◆ ArbiterLibGetNextAllocationRange()

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

Definition at line 213 of file arbiter.c.

216{
217 PAGED_CODE();
218
220 return FALSE;
221}

Referenced by ArbiterLibInitializeInstance().

◆ ArbiterLibHandler()

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

Definition at line 288 of file arbiter.c.

292{
293 PAGED_CODE();
294
297}

◆ ArbiterLibInitializeInstance()

NTSTATUS NTAPI ArbiterLibInitializeInstance ( _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 349 of file arbiter.c.

356{
358
359 PAGED_CODE();
360
361 DPRINT("ArbiterLibInitializeInstance: '%S'\n", ArbiterName);
362
363 ASSERT(Arbiter->UnpackRequirement != NULL);
364 ASSERT(Arbiter->PackResource != NULL);
365 ASSERT(Arbiter->UnpackResource != NULL);
366 ASSERT(Arbiter->MutexEvent == NULL);
367 ASSERT(Arbiter->Allocation == NULL);
368 ASSERT(Arbiter->PossibleAllocation == NULL);
369 ASSERT(Arbiter->AllocationStack == NULL);
370
371 Arbiter->Signature = ARBITER_SIG;
372 Arbiter->BusDeviceObject = BusDeviceObject;
373 Arbiter->Name = ArbiterName;
374 Arbiter->ResourceType = ResourceType;
375 Arbiter->TransactionInProgress = FALSE;
376#if (NTDDI_VERSION >= NTDDI_VISTA)
377 Arbiter->OrderingName = OrderName;
378#endif
379
380 /* The per-instance lock: a signaled synchronization event used as a mutex. */
381 Arbiter->MutexEvent = ExAllocatePoolWithTag(NonPagedPool, sizeof(KEVENT), TAG_ARBITER);
382 if (!Arbiter->MutexEvent)
383 {
385 goto Failure;
386 }
387 KeInitializeEvent(Arbiter->MutexEvent, SynchronizationEvent, TRUE);
388
389#if (NTDDI_VERSION >= NTDDI_VISTA)
390 /* Vista+: a notification event exposing whether a Test is outstanding. */
391 Arbiter->TransactionEvent = ExAllocatePoolWithTag(NonPagedPool, sizeof(KEVENT), TAG_ARBITER);
392 if (!Arbiter->TransactionEvent)
393 {
395 goto Failure;
396 }
397 KeInitializeEvent(Arbiter->TransactionEvent, NotificationEvent, TRUE);
398#endif
399
400 Arbiter->AllocationStack = ExAllocatePoolWithTag(PagedPool, PAGE_SIZE, TAG_ARBITER);
401 if (!Arbiter->AllocationStack)
402 {
404 goto Failure;
405 }
406 Arbiter->AllocationStackMaxSize = PAGE_SIZE;
407 Arbiter->Allocation = ExAllocatePoolWithTag(PagedPool, sizeof(RTL_RANGE_LIST), TAG_ARBITER);
408 if (!Arbiter->Allocation)
409 {
411 goto Failure;
412 }
413 RtlInitializeRangeList(Arbiter->Allocation);
414
415 Arbiter->PossibleAllocation = ExAllocatePoolWithTag(PagedPool, sizeof(RTL_RANGE_LIST), TAG_ARBITER);
416 if (!Arbiter->PossibleAllocation)
417 {
419 goto Failure;
420 }
421 RtlInitializeRangeList(Arbiter->PossibleAllocation);
422
423 if (!Arbiter->TestAllocation)
424 Arbiter->TestAllocation = ArbiterLibTestAllocation;
425 if (!Arbiter->RetestAllocation)
426 Arbiter->RetestAllocation = ArbiterLibRetestAllocation;
427 if (!Arbiter->CommitAllocation)
428 Arbiter->CommitAllocation = ArbiterLibCommitAllocation;
429 if (!Arbiter->RollbackAllocation)
430 Arbiter->RollbackAllocation = ArbiterLibRollbackAllocation;
431 if (!Arbiter->BootAllocation)
432 Arbiter->BootAllocation = ArbiterLibBootAllocation;
433 if (!Arbiter->AddReserved)
434 Arbiter->AddReserved = ArbiterLibAddReserved;
435 if (!Arbiter->QueryConflict)
436 Arbiter->QueryConflict = ArbiterLibQueryConflict;
437 if (!Arbiter->StartArbiter)
438 Arbiter->StartArbiter = ArbiterLibStartArbiter;
439 if (!Arbiter->PreprocessEntry)
440 Arbiter->PreprocessEntry = ArbiterLibPreprocessEntry;
441 if (!Arbiter->AllocateEntry)
442 Arbiter->AllocateEntry = ArbiterLibAllocateEntry;
443 if (!Arbiter->GetNextAllocationRange)
444 Arbiter->GetNextAllocationRange = ArbiterLibGetNextAllocationRange;
445 if (!Arbiter->FindSuitableRange)
446 Arbiter->FindSuitableRange = ArbiterLibFindSuitableRange;
447 if (!Arbiter->AddAllocation)
448 Arbiter->AddAllocation = ArbiterLibAddAllocation;
449 if (!Arbiter->BacktrackAllocation)
450 Arbiter->BacktrackAllocation = ArbiterLibBacktrackAllocation;
451 if (!Arbiter->OverrideConflict)
452 Arbiter->OverrideConflict = ArbiterLibOverrideConflict;
453#if (NTDDI_VERSION >= NTDDI_VISTA)
454 if (!Arbiter->InitializeRangeList)
455 Arbiter->InitializeRangeList = ArbiterLibInitializeRangeList;
456#endif
457
458 Status = ArbiterLibDefaultAssignmentOrdering(Arbiter, OrderName, OrderName, TranslateOrderingFunction);
459 if (!NT_SUCCESS(Status))
460 {
461 DPRINT1("ArbiterLibInitializeInstance: ArbiterLibDefaultAssignmentOrdering failed, Status %X\n", Status);
462 goto Failure;
463 }
464
465 return STATUS_SUCCESS;
466
467Failure:
468 DPRINT1("ArbiterLibInitializeInstance: '%S' failed, Status %X\n", ArbiterName, Status);
470 return Status;
471}
NTSTATUS NTAPI ArbiterLibBootAllocation(_In_ PARBITER_INSTANCE Arbiter, _Inout_ PARBITER_BOOT_ALLOCATION_PARAMETERS Parameters)
Definition: arbiter.c:61
BOOLEAN NTAPI ArbiterLibGetNextAllocationRange(_In_ PARBITER_INSTANCE Arbiter, _Inout_ PARBITER_ALLOCATION_STATE ArbState)
Definition: arbiter.c:213
NTSTATUS NTAPI ArbiterLibInitializeRangeList(_In_ PARBITER_INSTANCE Arbiter, _In_ ULONG ResourceCount, _In_ PCM_PARTIAL_RESOURCE_DESCRIPTOR Resources, _Inout_ PRTL_RANGE_LIST RangeList)
Definition: arbiter.c:122
NTSTATUS NTAPI ArbiterLibAllocateEntry(_In_ PARBITER_INSTANCE Arbiter, _Inout_ PARBITER_ALLOCATION_STATE ArbState)
Definition: arbiter.c:188
NTSTATUS NTAPI ArbiterLibRetestAllocation(_In_ PARBITER_INSTANCE Arbiter, _Inout_ PARBITER_RETEST_ALLOCATION_PARAMETERS Parameters)
Definition: arbiter.c:42
NTSTATUS NTAPI ArbiterLibTestAllocation(_In_ PARBITER_INSTANCE Arbiter, _Inout_ PARBITER_TEST_ALLOCATION_PARAMETERS Parameters)
Definition: arbiter.c:23
NTSTATUS NTAPI ArbiterLibAddReserved(_In_ PARBITER_INSTANCE Arbiter, _Inout_ PARBITER_ADD_RESERVED_PARAMETERS Parameters)
Definition: arbiter.c:80
VOID NTAPI ArbiterLibBacktrackAllocation(_In_ PARBITER_INSTANCE Arbiter, _Inout_ PARBITER_ALLOCATION_STATE ArbState)
Definition: arbiter.c:251
BOOLEAN NTAPI ArbiterLibFindSuitableRange(_In_ PARBITER_INSTANCE Arbiter, _Inout_ PARBITER_ALLOCATION_STATE ArbState)
Definition: arbiter.c:226
NTSTATUS NTAPI ArbiterLibCommitAllocation(_In_ PARBITER_INSTANCE Arbiter)
Definition: arbiter.c:138
VOID NTAPI ArbiterLibDeleteInstance(_In_ PARBITER_INSTANCE Arbiter)
Definition: arbiter.c:302
NTSTATUS NTAPI ArbiterLibRollbackAllocation(_In_ PARBITER_INSTANCE Arbiter)
Definition: arbiter.c:150
NTSTATUS NTAPI ArbiterLibPreprocessEntry(_In_ PARBITER_INSTANCE Arbiter, _Inout_ PARBITER_ALLOCATION_STATE ArbState)
Definition: arbiter.c:175
NTSTATUS NTAPI ArbiterLibStartArbiter(_In_ PARBITER_INSTANCE Arbiter, _In_ PCM_RESOURCE_LIST StartResources)
Definition: arbiter.c:162
BOOLEAN NTAPI ArbiterLibOverrideConflict(_In_ PARBITER_INSTANCE Arbiter, _Inout_ PARBITER_ALLOCATION_STATE ArbState)
Definition: arbiter.c:275
#define ARBITER_SIG
Definition: arbiter.c:17
VOID NTAPI ArbiterLibAddAllocation(_In_ PARBITER_INSTANCE Arbiter, _Inout_ PARBITER_ALLOCATION_STATE ArbState)
Definition: arbiter.c:239
NTSTATUS NTAPI ArbiterLibQueryConflict(_In_ PARBITER_INSTANCE Arbiter, _Inout_ PARBITER_QUERY_CONFLICT_PARAMETERS Parameters)
Definition: arbiter.c:100
NTSTATUS NTAPI ArbiterLibDefaultAssignmentOrdering(_Inout_ PARBITER_INSTANCE Arbiter, _In_ PCWSTR AllocationOrderName, _In_ PCWSTR ReservedResourcesName, _In_opt_ PARB_TRANSLATE_ORDERING TranslateOrderingFunction)
Definition: ordering.c:328
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 STATUS_SUCCESS
Definition: shellext.h:65
#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().

◆ ArbiterLibInitializeRangeList()

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

Definition at line 122 of file arbiter.c.

127{
128 PAGED_CODE();
129
132}

Referenced by ArbiterLibInitializeInstance().

◆ ArbiterLibOverrideConflict()

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

Definition at line 275 of file arbiter.c.

278{
279 PAGED_CODE();
280
282 return FALSE;
283}

Referenced by ArbiterLibInitializeInstance().

◆ ArbiterLibPreprocessEntry()

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

Definition at line 175 of file arbiter.c.

178{
179 PAGED_CODE();
180
182 return STATUS_SUCCESS;
183}

Referenced by ArbiterLibInitializeInstance().

◆ ArbiterLibQueryConflict()

NTSTATUS NTAPI ArbiterLibQueryConflict ( _In_ PARBITER_INSTANCE  Arbiter,
_Inout_ PARBITER_QUERY_CONFLICT_PARAMETERS  Parameters 
)

Definition at line 100 of file arbiter.c.

111{
112 PAGED_CODE();
113
116}

Referenced by ArbiterLibInitializeInstance().

◆ ArbiterLibRetestAllocation()

NTSTATUS NTAPI ArbiterLibRetestAllocation ( _In_ PARBITER_INSTANCE  Arbiter,
_Inout_ PARBITER_RETEST_ALLOCATION_PARAMETERS  Parameters 
)

Definition at line 42 of file arbiter.c.

50{
51 PAGED_CODE();
52
55}

Referenced by ArbiterLibInitializeInstance().

◆ ArbiterLibRollbackAllocation()

NTSTATUS NTAPI ArbiterLibRollbackAllocation ( _In_ PARBITER_INSTANCE  Arbiter)

Definition at line 150 of file arbiter.c.

152{
153 PAGED_CODE();
154
157}

Referenced by ArbiterLibInitializeInstance().

◆ ArbiterLibSortArbitrationList()

NTSTATUS NTAPI ArbiterLibSortArbitrationList ( _Inout_ PLIST_ENTRY  ArbitrationList)

Definition at line 201 of file arbiter.c.

203{
204 PAGED_CODE();
205
208}

◆ ArbiterLibStartArbiter()

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

Definition at line 162 of file arbiter.c.

165{
166 PAGED_CODE();
167
170}

Referenced by ArbiterLibInitializeInstance().

◆ ArbiterLibTestAllocation()

NTSTATUS NTAPI ArbiterLibTestAllocation ( _In_ PARBITER_INSTANCE  Arbiter,
_Inout_ PARBITER_TEST_ALLOCATION_PARAMETERS  Parameters 
)

Definition at line 23 of file arbiter.c.

31{
32 PAGED_CODE();
33
36}

Referenced by ArbiterLibInitializeInstance().