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;
Elementy członkowskie
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 pScheduler
version
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