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