Descrever um qualificador com uma variante de qualificador

Uma variante de qualificador é um sinalizador que descreve mais informações sobre um qualificador. Por exemplo, a variante de qualificador restrita afirma que o WMI não deve propagar o qualificador associado para nenhuma classe ou instância derivada. Você pode definir variantes usando o código MOF ou programaticamente. Embora você possa descrever uma variedade de efeitos com variantes, as principais finalidades dos sinalizadores de variante é definir como o WMI propaga qualificadores por meio de herança.

O WMI define várias variantes de qualificador que você pode anexar a qualquer qualificador, independentemente da origem do qualificador. No entanto, algumas variantes não são apropriados para todos os tipos de qualificador. A variante ToSubClass, por exemplo, é apropriada apenas para qualificadores definidos para uma classe. Não é possível anexar ToSubClass a um qualificador usado para descrever uma instância.

Você pode usar variantes para descrever uma variedade de efeitos diferentes para qualificadores. Por exemplo, a variante pode indicar se um qualificador pode ser localizado. No entanto, uma das principais finalidades de uma variante de qualificador é descrever se uma classe pai pode passar qualificadores para uma subclasse ou instância de classe. Você também pode usar variantes para determinar se uma propriedade de classe passa um qualificador para uma propriedade de instância. Por fim, use variantes para declarar se uma subclasse pode substituir o valor original de um qualificador herdado. No entanto, os qualificadores que você declara para uma classe ou instância não se propagam para as propriedades dessa classe ou instância. Além disso, as variantes que estabelecem permissões de substituição são válidas somente se você também definir as variantes ToInstance ou ToSubClass.

Uma variante pode ser atribuída globalmente a um qualificador para um arquivo MOF inteiro usando a sintaxe a seguir na qual o espaço em branco atua como delimitador quando várias variantes são especificadas.

Qualifier QualifierName : flavor1 <flavor2...>;

As variantes globais se aplicam a todos os usos subsequentes do qualificador no arquivo MOF. Instruções de variantes globais podem ocorrer em qualquer lugar no arquivo fora de um bloco de declaração de objeto. As variantes redefinidas na classe, instância ou nível de propriedade substituem as declarações de variantes globais para o escopo desse objeto.

Você não pode definir uma nova variante. Embora você possa criar um novo qualificador, use apenas as variantes de qualificador existentes para descrever seu novo qualificador.

Para definir as variantes de qualificador no MOF

  • Declare as variantes que descrevem um qualificador específico após o nome do qualificador, entre os colchetes do qualificador. Use o espaço em branco como delimitador entre várias variantes.

    O exemplo a seguir mostra o padrão para anexar qualificadores predefinidos.

    [qualifier1 : flavor1 flavor2 flavor3, qualifier2 : flavor1]
    

Você pode adicionar variantes de qualificador programaticamente somente em C++. Essa operação não está disponível na API de Script para WMI, embora você possa adicionar um novo qualificador chamando SWbemQualifierSet.Add.

Para atribuir uma variante usando C++

  • Chame o método IWbemQualifierSet::P ut com o parâmetro lFlavor definido como uma das constantes definidas para o método.