Partager via


IResourceManager, structure

Interface avec un gestionnaire des ressources du runtime d'accès concurrentiel. Il s'agit de l'interface par laquelle les planificateurs communiquent avec le gestionnaire des ressources.

Syntaxe

struct IResourceManager;

Membres

Énumérations publiques

Nom Description
IResourceManager ::OSVersion Type énuméré qui représente la version du système d'exploitation.

Méthodes publiques

Nom Description
IResourceManager ::CreateNodeTopology Présente uniquement dans les builds de débogage du runtime, cette méthode est un hook de test conçu pour faciliter le test de Resource Manager sur différentes topologies matérielles, sans nécessiter de matériel réel correspondant à la configuration. Avec les builds commerciales du runtime, cette méthode retourne sans effectuer d’action.
IResourceManager ::GetAvailableNodeCount Retourne le nombre de nœuds disponibles pour Resource Manager.
IResourceManager ::GetFirstNode Retourne le premier nœud dans l’ordre d’énumération tel que défini par Resource Manager.
IResourceManager ::Reference Incrémente le nombre de références sur l’instance Resource Manager.
IResourceManager ::RegisterScheduler Inscrit un planificateur auprès de Resource Manager. Une fois le planificateur inscrit, il doit communiquer avec Resource Manager à l’aide de l’interface ISchedulerProxy retournée.
IResourceManager ::Release Décrémente le nombre de références sur l’instance Resource Manager. Resource Manager est détruit lorsque son nombre de références est atteint 0.

Notes

Utilisez la fonction CreateResourceManager pour obtenir une interface pour l’instance singleton Resource Manager. La méthode incrémente un nombre de références sur Resource Manager et vous devez appeler la méthode IResourceManager ::Release pour libérer la référence lorsque vous avez terminé avec Resource Manager. En règle générale, chaque planificateur que vous créez appelle cette méthode pendant la création et libère la référence à Resource Manager après son arrêt.

Hiérarchie d'héritage

IResourceManager

Spécifications

En-tête : concrtrm.h

Espace de noms : concurrency

IResourceManager ::CreateNodeTopology, méthode

Présente uniquement dans les builds de débogage du runtime, cette méthode est un hook de test conçu pour faciliter le test de Resource Manager sur différentes topologies matérielles, sans nécessiter de matériel réel correspondant à la configuration. Avec les builds commerciales du runtime, cette méthode retourne sans effectuer d’action.

virtual void CreateNodeTopology(
    unsigned int nodeCount,
    _In_reads_(nodeCount) unsigned int* pCoreCount,
    _In_reads_opt_(nodeCount) unsigned int** pNodeDistance,
    _In_reads_(nodeCount) unsigned int* pProcessorGroups) = 0;

Paramètres

nodeCount
Nombre de nœuds de processeur simulés.

pCoreCount
Tableau qui spécifie le nombre de cœurs sur chaque nœud.

pNodeDistance
Matrice spécifiant la distance de nœud entre deux nœuds. Ce paramètre peut avoir la valeur NULL.

pProcessorGroups
Tableau qui spécifie le groupe de processeurs auquel appartient chaque nœud.

Notes

invalid_argument est levée si le paramètre nodeCount a la valeur 0 passée ou si le paramètre pCoreCount a la valeur NULL.

invalid_operation est levée si cette méthode est appelée alors que d’autres planificateurs existent dans le processus.

IResourceManager ::GetAvailableNodeCount, méthode

Retourne le nombre de nœuds disponibles pour Resource Manager.

virtual unsigned int GetAvailableNodeCount() const = 0;

Valeur de retour

Nombre de nœuds disponibles pour Resource Manager.

IResourceManager ::GetFirstNode, méthode

Retourne le premier nœud dans l’ordre d’énumération tel que défini par Resource Manager.

virtual ITopologyNode* GetFirstNode() const = 0;

Valeur de retour

Premier nœud dans l’ordre d’énumération tel que défini par Resource Manager.

IResourceManager ::OSVersion, énumération

Type énuméré qui représente la version du système d'exploitation.

enum OSVersion;

IResourceManager ::Reference, méthode

Incrémente le nombre de références sur l’instance Resource Manager.

virtual unsigned int Reference() = 0;

Valeur de retour

Nombre de références résultant.

IResourceManager ::RegisterScheduler, méthode

Inscrit un planificateur auprès de Resource Manager. Une fois le planificateur inscrit, il doit communiquer avec Resource Manager à l’aide de l’interface ISchedulerProxy retournée.

virtual ISchedulerProxy *RegisterScheduler(
    _Inout_ IScheduler* pScheduler,
    unsigned int version) = 0;

Paramètres

pScheduler
Interface IScheduler du planificateur à inscrire.

version
La version de l’interface de communication que le planificateur utilise pour communiquer avec Resource Manager. L’utilisation d’une version permet à Resource Manager d’évoluer l’interface de communication tout en permettant aux planificateurs d’obtenir l’accès à des fonctionnalités plus anciennes. Les planificateurs qui souhaitent utiliser les fonctionnalités Resource Manager présentes dans Visual Studio 2010 doivent utiliser la version CONCRT_RM_VERSION_1.

Valeur de retour

Interface ISchedulerProxy que Resource Manager a associée à votre planificateur. Votre planificateur doit utiliser cette interface pour communiquer avec Resource Manager à partir de ce point.

Notes

Utilisez cette méthode pour lancer la communication avec Resource Manager. La méthode associe l’interface IScheduler de votre planificateur à une ISchedulerProxy interface et la remet à vous. Vous pouvez utiliser l’interface retournée pour demander des ressources d’exécution à utiliser par votre planificateur ou pour abonner des threads avec Resource Manager. Resource Manager utilisera des éléments de stratégie de la stratégie de planificateur retournée par la méthode IScheduler ::GetPolicy pour déterminer le type de threads que le planificateur devra exécuter. Si votre SchedulerKind clé de stratégie a la valeur UmsThreadDefault et que la valeur est réécutée de la stratégie comme valeur UmsThreadDefault, l’interface IScheduler transmise à la méthode doit être une IUMSScheduler interface.

La méthode lève une invalid_argument exception si le paramètre pScheduler a la valeur NULL ou si le paramètre version n’est pas une version valide pour l’interface de communication.

IResourceManager ::Release, méthode

Décrémente le nombre de références sur l’instance Resource Manager. Resource Manager est détruit lorsque son nombre de références est atteint 0.

virtual unsigned int Release() = 0;

Valeur de retour

Nombre de références résultant.

Voir aussi

accès concurrentiel Namespace
ISchedulerProxy, structure
IScheduler, structure