Opisywanie kwalifikatora o charakterze kwalifikatora
Rodzaj kwalifikatora to flaga opisująca więcej informacji o kwalifikatorze. Na przykład kwalifikator ograniczający stanowi, że usługa WMI nie powinna propagować skojarzonego kwalifikatora do żadnych klas pochodnych ani instancji. Można ustawić smaki przy użyciu kodu MOF lub programowo. Chociaż można opisać różne efekty związane ze smakami, głównym celem flag smakowych jest zdefiniowanie, jak WMI propaguje kwalifikatory przez dziedziczenie.
WMI definiuje kilka odmian kwalifikatora, które można dołączyć do dowolnego kwalifikatora, niezależnie od źródła kwalifikatora. Jednak niektóre smaki nie są odpowiednie dla wszystkich typów kwalifikatora. Na przykład wariant ToSubClass jest odpowiedni tylko dla kwalifikatorów zdefiniowanych dla danej klasy. Nie można dołączyć ToSubClass do kwalifikatora użytego do opisania wystąpienia.
Możesz użyć smaków, aby opisać różne efekty dla kwalifikatorów. Na przykład rodzaj może wskazywać, czy kwalifikator może być zlokalizowany. Jednak jednym z głównych celów typu kwalifikatora jest opisywanie, czy klasa nadrzędna może przekazać kwalifikatory do podklasy lub wystąpienia klasy. Można również użyć wariantów, aby określić, czy właściwość klasy przekazuje kwalifikator do właściwości instancji. Na koniec użyj właściwości, aby określić, czy podklasa może zastąpić oryginalną wartość dziedziczonego kwalifikatora. Jednak kwalifikatory zadeklarowane dla klasy lub wystąpienia nie są przekazywane do właściwości tej klasy lub wystąpienia. Ponadto smaki, które ustanawiają uprawnienia do zastąpienia, są prawidłowe tylko wtedy, gdy ustawisz również ToInstance lub ToSubClass smaki.
Smak może być globalnie przypisany do kwalifikatora dla całego pliku MOF przy użyciu następującej składni, w której biały znak działa jako ogranicznik, gdy określono wiele smaków.
Qualifier QualifierName : flavor1 <flavor2...>;
Globalne smaki mają zastosowanie do wszystkich kolejnych zastosowań kwalifikatora w pliku MOF. Globalne instrukcje smakowe mogą występować w dowolnym miejscu w pliku poza blokiem deklaracji obiektu. Smaki ponownie zdefiniowane na poziomie klasy, wystąpienia lub właściwości zastępują globalne deklaracje smaku dla zakresu tego obiektu.
Nie można zdefiniować nowego smaku. Mimo że można utworzyć nowy kwalifikator, użyj tylko istniejących kwalifikatora, aby opisać nowy kwalifikator.
Aby zdefiniować warianty kwalifikatorów w MOF
Zadeklaruj smaki, które opisują dany kwalifikator po nazwie kwalifikatora, w nawiasach kwalifikatora. Użyj odstępu jako ogranicznika między wieloma smakami.
Poniższy przykład przedstawia wzorzec dołączania wstępnie zdefiniowanych kwalifikatorów.
[qualifier1 : flavor1 flavor2 flavor3, qualifier2 : flavor1]
Warianty kwalifikatorów można dodawać programowo tylko w języku C++. Ta operacja nie jest dostępna w interfejsie API skryptów dla WMI, jednak można dodać nowy kwalifikator, wywołując SWbemQualifierSet.Add.
Aby przypisać smak przy użyciu języka C++
- Wywołaj metodę IWbemQualifierSet::Put za pomocą parametru lFlavor ustawionego na jedną ze stałych zdefiniowanych dla metody.