IResourceManager — Struktura

Interfejs usługi Resource Manager środowiska uruchomieniowego współbieżności. Jest to interfejs, za pomocą którego harmonogramy komunikują się z usługą Resource Manager.

Składnia

struct IResourceManager;

Członkowie

Publiczne wyliczenia

Nazwa/nazwisko opis
IResourceManager::OSVersion Typ wyliczany reprezentujący wersję systemu operacyjnego.

Metody publiczne

Nazwa/nazwisko opis
IResourceManager::CreateNodeTopology Obecny tylko w kompilacjach debugowania środowiska uruchomieniowego, ta metoda jest elementem zaczepienia testowym zaprojektowanym w celu ułatwienia testowania usługi Resource Manager w różnych topologiach sprzętowych bez konieczności rzeczywistego dopasowania sprzętu do konfiguracji. W przypadku kompilacji detalicznych środowiska uruchomieniowego ta metoda zwróci się bez wykonywania żadnej akcji.
IResourceManager::GetAvailableNodeCount Zwraca liczbę węzłów dostępnych dla usługi Resource Manager.
IResourceManager::GetFirstNode Zwraca pierwszy węzeł w kolejności wyliczenia zgodnie z definicją w usłudze Resource Manager.
IResourceManager::Reference Zwiększa liczbę odwołań w wystąpieniu usługi Resource Manager.
IResourceManager::RegisterScheduler Rejestruje harmonogram w usłudze Resource Manager. Po zarejestrowaniu harmonogramu powinien komunikować się z usługą Resource Manager przy użyciu zwróconego interfejsu ISchedulerProxy .
IResourceManager::Release Dekrementuje liczbę odwołań w wystąpieniu usługi Resource Manager. Usługa Resource Manager jest niszczona, gdy jej liczba odwołań przechodzi do 0.

Uwagi

Użyj funkcji CreateResourceManager, aby uzyskać interfejs do pojedynczego wystąpienia usługi Resource Manager. Metoda zwiększa liczbę odwołań w usłudze Resource Manager i należy wywołać metodę IResourceManager::Release , aby zwolnić odwołanie po zakończeniu pracy z usługą Resource Manager. Zazwyczaj każdy utworzony harmonogram wywołuje tę metodę podczas tworzenia i zwalnia odwołanie do usługi Resource Manager po jego zamknięciu.

Hierarchia dziedziczenia

IResourceManager

Wymagania

Nagłówek: concrtrm.h

Przestrzeń nazw: współbieżność

IResourceManager::CreateNodeTopology — Metoda

Obecny tylko w kompilacjach debugowania środowiska uruchomieniowego, ta metoda jest elementem zaczepienia testowym zaprojektowanym w celu ułatwienia testowania usługi Resource Manager w różnych topologiach sprzętowych bez konieczności rzeczywistego dopasowania sprzętu do konfiguracji. W przypadku kompilacji detalicznych środowiska uruchomieniowego ta metoda zwróci się bez wykonywania żadnej akcji.

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
Liczba symulowanych węzłów procesora.

pCoreCount
Tablica określająca liczbę rdzeni w każdym węźle.

pNodeDistance
Macierz określająca odległość węzła między dowolnymi dwoma węzłami. Ten parametr może mieć wartość NULL.

pProcessorGroups
Tablica określająca grupę procesorów, do których należy każdy węzeł.

Uwagi

invalid_argument jest zgłaszany, jeśli parametr nodeCount ma przekazaną wartość0, lub jeśli parametr pCoreCount ma wartość NULL.

invalid_operation jest zgłaszana, jeśli ta metoda jest wywoływana, podczas gdy w procesie istnieją inne harmonogramy.

IResourceManager::GetAvailableNodeCount — Metoda

Zwraca liczbę węzłów dostępnych dla usługi Resource Manager.

virtual unsigned int GetAvailableNodeCount() const = 0;

Wartość zwracana

Liczba węzłów dostępnych dla usługi Resource Manager.

IResourceManager::GetFirstNode — Metoda

Zwraca pierwszy węzeł w kolejności wyliczenia zgodnie z definicją w usłudze Resource Manager.

virtual ITopologyNode* GetFirstNode() const = 0;

Wartość zwracana

Pierwszy węzeł w kolejności wyliczania zgodnie z definicją w usłudze Resource Manager.

IResourceManager::OSVersion, wyliczenie

Typ wyliczany reprezentujący wersję systemu operacyjnego.

enum OSVersion;

IResourceManager::Reference — Metoda

Zwiększa liczbę odwołań w wystąpieniu usługi Resource Manager.

virtual unsigned int Reference() = 0;

Wartość zwracana

Wynikowa liczba odwołań.

IResourceManager::RegisterScheduler — Metoda

Rejestruje harmonogram w usłudze Resource Manager. Po zarejestrowaniu harmonogramu powinien komunikować się z usługą Resource Manager przy użyciu zwróconego interfejsu ISchedulerProxy .

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

Parametry

pScheduler
Interfejs IScheduler do harmonogramu do zarejestrowania.

version
Wersja interfejsu komunikacyjnego używanego przez harmonogram do komunikowania się z usługą Resource Manager. Użycie wersji umożliwia usłudze Resource Manager rozwijanie interfejsu komunikacyjnego przy jednoczesnym umożliwieniu harmonogramom uzyskiwania dostępu do starszych funkcji. Harmonogramy, które chcą korzystać z funkcji usługi Resource Manager znajdujących się w programie Visual Studio 2010, powinny używać wersji CONCRT_RM_VERSION_1.

Wartość zwracana

Interfejs ISchedulerProxy , który usługa Resource Manager skojarzyła z harmonogramem. Harmonogram powinien używać tego interfejsu do komunikowania się z usługą Resource Manager od tego momentu.

Uwagi

Użyj tej metody, aby zainicjować komunikację z usługą Resource Manager. Metoda kojarzy IScheduler interfejs harmonogramu z interfejsem ISchedulerProxy i przekazuje go z powrotem do Ciebie. Za pomocą zwróconego interfejsu możesz zażądać zasobów wykonywania do użycia przez harmonogram lub zasubskrybować wątki za pomocą usługi Resource Manager. Usługa Resource Manager użyje elementów zasad z zasad harmonogramu zwróconych przez metodę IScheduler::GetPolicy , aby określić, jakiego typu wątki będzie musiał wykonać harmonogram. SchedulerKind Jeśli klucz zasad ma wartośćUmsThreadDefault, a wartość jest odczytywana z powrotem z zasad jako wartość UmsThreadDefault, IScheduler interfejs przekazany do metody musi być interfejsemIUMSScheduler.

Metoda zgłasza invalid_argument wyjątek, jeśli parametr ma wartość NULL lub jeśli parametr pSchedulerversion nie jest prawidłową wersją interfejsu komunikacyjnego.

IResourceManager::Release — Metoda

Dekrementuje liczbę odwołań w wystąpieniu usługi Resource Manager. Usługa Resource Manager jest niszczona, gdy jej liczba odwołań przechodzi do 0.

virtual unsigned int Release() = 0;

Wartość zwracana

Wynikowa liczba odwołań.

Zobacz też

Przestrzeń nazw współbieżności
ISchedulerProxy, struktura
IScheduler, struktura