[This documentation is for preview only, and is subject to change in later releases. Blank topics are included as placeholders.]
The core interface which every scheduler that communicates with the resource manager must implement. This is part of a
two-way channel of communication between a scheduler and the resource manager. The other direction is represented by
the IResourceManager and ISchedulerProxy interfaces.

Members
Public Methods
Name | Description |
|---|
IScheduler::AddVirtualProcessors Method |
Called when the resource manager is giving virtual processors to a particular scheduler. The virtual processors are
identified by an array of IVirtualProcessorRoot interfaces. This call is made to grant virtual processor roots
at initial allocation during the course of ISchedulerProxy::RequestInitialVirtualProcessors, and during dynamic
core migration.
|
IScheduler::GetId Method |
Returns a scheduler unique identifier for the context.
|
IScheduler::GetPolicy Method |
Get the scheduler policy.
|
IScheduler::NotifyResourcesExternallyBusy Method |
Called when the resource manager is made aware that the execution resources underneath the virtual processors assigned to
this particular scheduler are busy (active) on other schedulers. The reason these execution resources were lent to
other schedulers is usually a lack of activation on the part of this scheduler, or a system-wide oversubscription.
This API is called only when a scheduler proxy was created with MinConcurrency = MaxConcurrency.
|
IScheduler::NotifyResourcesExternallyIdle Method |
Called when the resource manager is made aware that the hardware threads underneath the virtual processors assigned to
this particular scheduler are 'externally idle' once again i.e. any other schedulers that may have been using them have
stopped using them. This API is called only when a scheduler proxy was created with MinConcurrency = MaxConcurrency.
|
IScheduler::RemoveVirtualProcessors Method |
Called when the resource manager is taking away virtual processors from a particular scheduler. The scheduler should
mark the supplied virtual processors such that they are removed asynchronously and return immediately. Note that
the scheduler should make every attempt to remove the virtual processors as quickly as possible as the resource manager
will reaffinitize threads executing upon them to other resources. Delaying stopping the virtual processors may result
in unintentional oversubscription within the scheduler.
|
IScheduler::Statistics Method |
Called by the resource manager in order to gather statistics for a given scheduler. The statistics gathered here
will be used to drive dynamic feedback with the scheduler to determine when it is appropriate to assign more resources
or take resources away. Note that these counts can be optimistic and do not necessarily have to reflect the current
count with 100% synchronized accuracy.
|

Inheritance Hierarchy

Requirements

See Also