Sdílet prostřednictvím


IResourceManager – struktura

Rozhraní pro Resource Manager modulu Concurrency Runtime. Toto je rozhraní, pomocí kterého plánovači komunikují s Resource Managerem.

Syntaxe

struct IResourceManager;

Členové

Veřejné výčty

Jméno popis
IResourceManager::OSVersion Výčtový typ, který představuje verzi operačního systému.

Veřejné metody

Jméno popis
IResourceManager::CreateNodeTopology Tato metoda je k dispozici pouze v ladicích buildech modulu runtime. Tato metoda je testovací háček navržený tak, aby usnadnil testování Resource Manageru na různých hardwarových topologiích, aniž by vyžadoval skutečný hardware odpovídající konfiguraci. Při maloobchodních buildech modulu runtime se tato metoda vrátí bez provedení jakékoli akce.
IResourceManager::GetAvailableNodeCount Vrátí počet uzlů dostupných pro Resource Manager.
IResourceManager::GetFirstNode Vrátí první uzel v pořadí výčtu definovaný Resource Managerem.
IResourceManager::Reference Zvýší počet odkazů na instanci Resource Manageru.
IResourceManager::RegisterScheduler Zaregistruje plánovač pomocí Resource Manageru. Jakmile je plánovač zaregistrovaný, měl by komunikovat s Resource Managerem pomocí vráceného ISchedulerProxy rozhraní.
IResourceManager::Release Sníží počet odkazů na instanci Resource Manageru. Resource Manager je zničen, když jeho referenční počet přejde do 0.

Poznámky

Pomocí funkce CreateResourceManager získejte rozhraní pro instanci Singleton Resource Manageru. Metoda zvýší počet odkazů na Resource Manager a měli byste vyvolat metodu IResourceManager::Release , která uvolní odkaz, když budete hotovi s Resource Managerem. Každý plánovač, který vytvoříte, obvykle vyvolá tuto metodu během vytváření a po vypnutí uvolní odkaz na Resource Manager.

Hierarchie dědičnosti

IResourceManager

Požadavky

Hlavička: concrtrm.h

Obor názvů: souběžnost

IResourceManager::CreateNodeTopology – metoda

Tato metoda je k dispozici pouze v ladicích buildech modulu runtime. Tato metoda je testovací háček navržený tak, aby usnadnil testování Resource Manageru na různých hardwarových topologiích, aniž by vyžadoval skutečný hardware odpovídající konfiguraci. Při maloobchodních buildech modulu runtime se tato metoda vrátí bez provedení jakékoli akce.

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;

Parametry

nodeCount
Počet simulovaných uzlů procesoru.

pCoreCount
Pole, které určuje počet jader na každém uzlu.

pNodeDistance
Matice určující vzdálenost uzlu mezi libovolnými dvěma uzly. Tento parametr může mít hodnotu NULL.

pProcessorGroups
Pole, které určuje skupinu procesorů, do které každý uzel patří.

Poznámky

invalid_argument je vyvolán, pokud má parametr nodeCount hodnotu 0 byla předána, nebo pokud má parametr pCoreCount hodnotu NULL.

invalid_operation je vyvolána, pokud tato metoda je volána, zatímco ostatní plánovače existují v procesu.

IResourceManager::GetAvailableNodeCount – metoda

Vrátí počet uzlů dostupných pro Resource Manager.

virtual unsigned int GetAvailableNodeCount() const = 0;

Vrácená hodnota

Počet uzlů dostupných pro Resource Manager.

IResourceManager::GetFirstNode – metoda

Vrátí první uzel v pořadí výčtu definovaný Resource Managerem.

virtual ITopologyNode* GetFirstNode() const = 0;

Vrácená hodnota

První uzel v pořadí výčtu definovaný Resource Managerem.

IResourceManager::OSVersion – výčet

Výčtový typ, který představuje verzi operačního systému.

enum OSVersion;

IResourceManager::Reference – metoda

Zvýší počet odkazů na instanci Resource Manageru.

virtual unsigned int Reference() = 0;

Vrácená hodnota

Výsledný počet odkazů.

IResourceManager::RegisterScheduler – metoda

Zaregistruje plánovač pomocí Resource Manageru. Jakmile je plánovač zaregistrovaný, měl by komunikovat s Resource Managerem pomocí vráceného ISchedulerProxy rozhraní.

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

Parametry

pScheduler
Rozhraní IScheduler pro plánovač, který se má zaregistrovat.

version
Verze komunikačního rozhraní, které plánovač používá ke komunikaci s Resource Managerem. Použití verze umožňuje Resource Manageru vyvíjet komunikační rozhraní a zároveň umožňuje plánovačům získat přístup ke starším funkcím. Plánovače, kteří chtějí používat funkce Resource Manageru, které jsou přítomné v sadě Visual Studio 2010, by měly používat verzi CONCRT_RM_VERSION_1.

Vrácená hodnota

Rozhraní ISchedulerProxy , které Správce prostředků přidružuje k vašemu plánovači. Plánovač by měl toto rozhraní používat ke komunikaci s Resource Managerem od tohoto okamžiku.

Poznámky

Tuto metodu použijte k zahájení komunikace s Resource Managerem. Metoda přidruží rozhraní plánovače IScheduler k ISchedulerProxy rozhraní a vrátí ho zpět vám. Vrácené rozhraní můžete použít k vyžádání prostředků spouštění pro použití plánovačem nebo k odběru vláken pomocí Resource Manageru. Resource Manager použije elementy zásad ze zásad plánovače vrácené metodou IScheduler::GetPolicy k určení typu vláken, které plánovač bude muset provést. Pokud má klíč SchedulerKind zásad hodnotu UmsThreadDefault a hodnota se přečte zpět ze zásady jako hodnota UmsThreadDefault, IScheduler rozhraní předané metodě musí být IUMSScheduler rozhraní.

Metoda vyvolá invalid_argument výjimku, pokud má parametr pScheduler hodnotu NULL nebo pokud parametr version není platnou verzí pro komunikační rozhraní.

IResourceManager::Release – metoda

Sníží počet odkazů na instanci Resource Manageru. Resource Manager je zničen, když jeho referenční počet přejde do 0.

virtual unsigned int Release() = 0;

Vrácená hodnota

Výsledný počet odkazů.

Viz také

concurrency – obor názvů
ISchedulerProxy – struktura
IScheduler – struktura