IResourceManager-structuur

Een interface naar de Resource Manager van de Concurrency Runtime. Dit is de interface waarmee planners communiceren met Resource Manager.

Syntaxis

struct IResourceManager;

Leden

Openbare inventarisaties

Naam Description
IResourceManager::OSVersion Een geïnventariseerd type dat de versie van het besturingssysteem vertegenwoordigt.

Openbare methoden

Naam Description
IResourceManager::CreateNodeTopology Deze methode is alleen aanwezig in builds voor foutopsporing van de runtime. Deze methode is ontworpen om het testen van Resource Manager op verschillende hardwaretopologieën te vergemakkelijken, zonder dat er werkelijke hardware nodig is die overeenkomt met de configuratie. Met retailversies van de runtime wordt deze methode geretourneerd zonder actie uit te voeren.
IResourceManager::GetAvailableNodeCount Retourneert het aantal knooppunten dat beschikbaar is voor Resource Manager.
IResourceManager::GetFirstNode Retourneert het eerste knooppunt in de opsommingsvolgorde zoals gedefinieerd door Resource Manager.
IResourceManager::Reference Hiermee wordt het aantal verwijzingen voor het Resource Manager-exemplaar verhoogd.
IResourceManager::RegisterScheduler Registreert een scheduler bij Resource Manager. Zodra de scheduler is geregistreerd, moet deze via de geretourneerde ISchedulerProxy interface communiceren met de Resource Manager.
IResourceManager::Release Hiermee wordt de referentietelling voor het Resource Manager-exemplaar verlaagd. De Resource Manager wordt vernietigd wanneer het aantal verwijzingen naar 0.

Opmerkingen

Gebruik de functie CreateResourceManager om een interface te verkrijgen voor het Singleton Resource Manager-exemplaar. Met de methode wordt een verwijzingsaantal verhoogd voor Resource Manager en moet u de methode IResourceManager::Release aanroepen om de verwijzing vrij te geven wanneer u klaar bent met Resource Manager. Normaal gesproken roept elke scheduler die u maakt deze methode aan tijdens het maken en geeft u de verwijzing naar Resource Manager vrij nadat deze is afgesloten.

Overnamehiërarchie

IResourceManager

Requirements

Koptekst: concrtrm.h

Naamruimte: concurrentie

Methode IResourceManager::CreateNodeTopology

Deze methode is alleen aanwezig in builds voor foutopsporing van de runtime. Deze methode is ontworpen om het testen van Resource Manager op verschillende hardwaretopologieën te vergemakkelijken, zonder dat er werkelijke hardware nodig is die overeenkomt met de configuratie. Met retailversies van de runtime wordt deze methode geretourneerd zonder actie uit te voeren.

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;

Parameterwaarden

nodeCount
Het aantal processorknooppunten dat wordt gesimuleerd.

pCoreCount
Een matrix die het aantal kernen op elk knooppunt aangeeft.

pNodeDistance
Een matrix die de knooppuntafstand tussen twee knooppunten aangeeft. Deze parameter kan de waarde NULLhebben.

pProcessorGroups
Een matrix die de processorgroep aangeeft waartoe elk knooppunt behoort.

Opmerkingen

invalid_argument wordt gegenereerd als de parameter nodeCount de waarde 0 heeft doorgegeven of als de parameter pCoreCount de waarde NULLheeft.

invalid_operation wordt opgegooid als deze methode wordt aangeroepen terwijl andere planners in het proces aanwezig zijn.

IResourceManager::GetAvailableNodeCount-methode

Retourneert het aantal knooppunten dat beschikbaar is voor Resource Manager.

virtual unsigned int GetAvailableNodeCount() const = 0;

Retourwaarde

Het aantal knooppunten dat beschikbaar is voor Resource Manager.

Methode IResourceManager::GetFirstNode

Retourneert het eerste knooppunt in de opsommingsvolgorde zoals gedefinieerd door Resource Manager.

virtual ITopologyNode* GetFirstNode() const = 0;

Retourwaarde

Het eerste knooppunt in de opsommingsvolgorde zoals gedefinieerd door Resource Manager.

IResourceManager::OSVersion Opsomming

Een geïnventariseerd type dat de versie van het besturingssysteem vertegenwoordigt.

enum OSVersion;

Methode IResourceManager::Reference

Hiermee wordt het aantal verwijzingen voor het Resource Manager-exemplaar verhoogd.

virtual unsigned int Reference() = 0;

Retourwaarde

Het resulterende aantal verwijzingen.

Methode IResourceManager::RegisterScheduler

Registreert een scheduler bij Resource Manager. Zodra de scheduler is geregistreerd, moet deze via de geretourneerde ISchedulerProxy interface communiceren met de Resource Manager.

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

Parameterwaarden

pScheduler
Een IScheduler interface voor de planner die moet worden geregistreerd.

version
De versie van de communicatie-interface die de planner gebruikt om te communiceren met Resource Manager. Met behulp van een versie kan Resource Manager de communicatie-interface ontwikkelen, terwijl planners toegang kunnen krijgen tot oudere functies. Schedulers die Resource Manager-functies willen gebruiken die aanwezig zijn in Visual Studio 2010, moeten de versie CONCRT_RM_VERSION_1gebruiken.

Retourwaarde

De ISchedulerProxy-interface die de Resource Manager aan uw scheduler heeft gekoppeld. Uw planner moet deze interface gebruiken om vanaf dit punt met Resource Manager te communiceren.

Opmerkingen

Gebruik deze methode om communicatie met Resource Manager te initiëren. De methode koppelt de IScheduler interface voor uw planner aan een ISchedulerProxy interface en geeft deze weer aan u. U kunt de geretourneerde interface gebruiken om uitvoeringsresources aan te vragen voor gebruik door uw planner of om threads te abonneren met Resource Manager. Resource Manager gebruikt beleidselementen van het scheduler-beleid dat wordt geretourneerd door de methode IScheduler::GetPolicy om te bepalen welk type threads de scheduler nodig heeft om werk uit te voeren. Als uw SchedulerKind beleidssleutel de waarde UmsThreadDefault heeft en de waarde wordt teruggelezen uit het beleid als de waarde UmsThreadDefault, moet de IScheduler interface die aan de methode wordt doorgegeven, een IUMSScheduler interface zijn.

De methode genereert een invalid_argument uitzondering als de parameter pScheduler de waarde NULL heeft of als de parameter version geen geldige versie is voor de communicatie-interface.

Methode IResourceManager::Release

Hiermee wordt de referentietelling voor het Resource Manager-exemplaar verlaagd. De Resource Manager wordt vernietigd wanneer het aantal verwijzingen naar 0.

virtual unsigned int Release() = 0;

Retourwaarde

Het resulterende aantal verwijzingen.

Zie ook

concurrentie Namespace
Structuur ISchedulerProxy
IScheduler-structuur