Partager via


IScheduler::NotifyResourcesExternallyIdle, méthode

Notifie ce planificateur que les threads matériels représentés par l'ensemble de racines de processeur virtuel du tableau ppVirtualProcessorRoots n'est pas utilisé par d'autres planificateurs.

virtual void NotifyResourcesExternallyIdle(
   _In_reads_(count) IVirtualProcessorRoot ** ppVirtualProcessorRoots,
   unsigned int count
) =0;

Paramètres

  • ppVirtualProcessorRoots
    Tableau des interfaces IVirtualProcessorRoot associées aux threads matériels sur lesquels d'autres planificateurs sont inactifs.

  • count
    Nombre d'interfaces de IVirtualProcessorRoot dans le tableau.

Notes

Il est possible pour un thread matériel particulier d'être assigné à plusieurs planificateurs en même temps.Il est possible qu'il n'y ait pas assez de threads matériels sur le système pour satisfaire l'accès concurrentiel minimal pour tous les planificateurs, sans devoir partager les ressources.Il est également possible que les ressources soient assignées temporairement à d'autres planificateurs lorsque le planificateur propriétaire ne les utilise pas, auquel cas toutes ses racines de processeur virtuel sur ce thread matériel sont désactivées.

Le niveau d'abonnement d'un thread matériel est défini par le nombre de threads abonnés et de racines de processeur virtuel activées associés à ce thread matériel.Du point de vue d'un planificateur particulier, le niveau d'abonnement externe d'un thread matériel est la partie de l'abonnement à laquelle d'autres planificateurs contribuent.Des notifications informant que les ressources sont occupées à l'extérieur sont envoyées à un planificateur lorsque le niveau d'abonnement externe d'un thread matériel tombe à zéro depuis une précédente valeur positive.

Les notifications via cette méthode sont envoyées uniquement aux planificateurs qui ont une stratégie où la valeur de la clé de stratégie MinConcurrency est égale à la valeur de la clé de stratégie MaxConcurrency.Pour plus d'informations sur les stratégies de planificateur, consultez SchedulerPolicy.

Un planificateur qualifié pour les notifications obtient un jeu de notifications initiales lorsqu'il est créé, en l'informant si les ressources qu'il vient d'assigner sont occupées ou inactives en externe.

Configuration requise

En-tête : concrtrm.h

Accès concurrentiel del'espace de noms :

Voir aussi

Référence

IScheduler, structure

IExecutionResource::CurrentSubscriptionLevel, méthode

IScheduler::NotifyResourcesExternallyBusy, méthode