Share via


Descrizione di un qualificatore con un qualificatore

Un qualificatore è un flag che descrive altre informazioni su un qualificatore. Ad esempio, il qualificatore con restrizioni indica che WMI non deve propagare il qualificatore associato a qualsiasi classe o istanza derivata. È possibile impostare le versioni usando il codice MOF o a livello di codice. Sebbene sia possibile descrivere un'ampia gamma di effetti con i sapori, gli scopi principali dei flag di sapore sono definire il modo in cui WMI propaga i qualificatori attraverso l'ereditarietà.

WMI definisce diversi tipi di qualificatori che è possibile associare a qualsiasi qualificatore, indipendentemente dall'origine del qualificatore. Tuttavia, alcune versioni non sono appropriate per tutti i tipi di qualificatore. Il tipo ToSubClass , ad esempio, è appropriato solo per i qualificatori definiti per una classe. Non è possibile associare ToSubClass a un qualificatore usato per descrivere un'istanza di .

È possibile utilizzare i sapori per descrivere una varietà di effetti diversi per i qualificatori. Ad esempio, flavor può indicare se un qualificatore può essere localizzato. Tuttavia, uno degli scopi principali di un qualificatore consiste nel descrivere se una classe padre può passare qualificatori a una sottoclasse o a un'istanza di classe. È anche possibile usare le versioni per determinare se una proprietà di classe passa un qualificatore a una proprietà dell'istanza. Usare infine le versioni per indicare se una sottoclasse può eseguire l'override del valore originale di un qualificatore ereditato. Tuttavia, i qualificatori dichiarati per una classe o un'istanza non vengono propagati alle proprietà di tale classe o istanza. Inoltre, le versioni che stabiliscono le autorizzazioni di override sono valide solo se si impostano anche le versioni ToInstance o ToSubClass .

Un sapore può essere assegnato a livello globale a un qualificatore per un intero file MOF usando la sintassi seguente in cui lo spazio vuoto funge da delimitatore quando vengono specificate più versioni.

Qualifier QualifierName : flavor1 <flavor2...>;

Le versioni globali si applicano a tutti gli usi successivi del qualificatore nel file MOF. Le istruzioni di tipo globale possono verificarsi in qualsiasi punto del file all'esterno di un blocco di dichiarazione di oggetto. Le versioni ridefinite a livello di classe, istanza o proprietà eseguono l'override delle dichiarazioni di sapore globale per l'ambito di tale oggetto.

Non è possibile definire un nuovo sapore. Sebbene sia possibile creare un nuovo qualificatore, usare solo i tipi di qualificatore esistenti per descrivere il nuovo qualificatore.

Per definire i tipi di qualificatore in MOF

  • Dichiarare le versioni che descrivono un qualificatore specificato dopo il nome del qualificatore, tra le parentesi di qualificatore. Usare lo spazio vuoto come delimitatore tra più versioni.

    Nell'esempio seguente viene illustrato il modello per associare qualificatori predefiniti.

    [qualifier1 : flavor1 flavor2 flavor3, qualifier2 : flavor1]
    

È possibile aggiungere tipi di qualificatore a livello di codice solo in C++. Questa operazione non è disponibile nell'API di scripting per WMI, anche se è possibile aggiungere un nuovo qualificatore chiamando SWbemQualifierSet.Add.

Per assegnare un sapore usando C++

  • Chiamare il metodo IWbemQualifierSet::P ut con il parametro lFlavor impostato su una delle costanti definite per il metodo .