Resource Arbitrator Services and Messages

Resource arbitrators resolve resource conflicts between devices. An arbitrator reviews a list of requirements for devices and finds the best allocation of resources to satisfy all devices. The Configuration Manager provides services and messages to support the operation of resource arbitrators. In particular, arbitrators register an arbitrator handler function with the Configuration Manager by using the CONFIGMG_Register_Arbitrator service. Once registered, this handler receives arbitration messages from the Configuration Manager whenever resolution of a conflict for the corresponding resource is needed.

There are these arbitrator services.

Service Description
CONFIGMG_Deregister_Arbitrator Removes a resource arbitrator.
CONFIGMG_Query_Arbitrator_Free_Data Retrieves arbitrator-specific free information.
CONFIGMG_Query_Arbitrator_Free_Size Retrieves the size of the free information the arbitrator would return in a call to the CONFIGMG_Query_Arbitrator_Free_Data function.
CONFIGMG_Register_Arbitrator Registers a resource arbitrator.

There are this arbitration message.

Message Description
ARB_FORCE_ALLOC Directs the arbitrator to retest, without failure, the given resource allocations.
ARB_QUERY_FREE Requests information about free resources for a logical configuration.
ARB_RELEASE_ALLOC Directs the arbitrator to clean up after a failed test allocation.
ARB_REMOVE Sent when the device node associated with the arbitration handler is being removed.
ARB_RETEST_ALLOC Directs the arbitrator to retest the given resource allocations.
ARB_SET_ALLOC Directs the arbitrator to make a test allocation the real allocation.
ARB_TEST_ALLOC Directs the arbitrator to test the given resource allocations.

The arbitration handler must return CR_DEFAULT for any messages it does not process.