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.