Поделиться через


Описание квалификатора со спецификой квалификатора

Флаг квалификатора описывает дополнительные сведения о квалификаторе. Например, тип квалификатора "Ограниченный" указывает, что WMI не должен передавать связанный квалификатор в любые производные классы или экземпляры. Вы можете задать вкусы с помощью кода MOF или программно. Хотя вы можете описать различные эффекты с вкусами, основные цели флагов вкуса — определить, как WMI распространяет квалификаторы через наследование.

WMI определяет несколько вариантов квалификаторов, которые можно подключить к любому квалификатору независимо от его происхождения. Однако некоторые вкусы не подходят для всех типов квалификаторов. ToSubClass вариант, например, подходит только для квалификаторов, которые определены для класса. Невозможно присоединить ToSubClass к квалификатору, используемому для описания экземпляра.

Вы можете использовать вкусы для описания различных эффектов для квалификаторов. Например, тип может указать, можно ли локализовать квалификатор. Однако одной из основных назначений типа квалификатора является описание того, может ли родительский класс передавать квалификаторы в подкласс или экземпляр класса. Вы также можете использовать варианты, чтобы определить, передает ли свойство класса квалификатор в свойство объекта. Наконец, используйте параметры, чтобы указать, может ли подкласс переопределить исходное значение унаследованного квалификатора. Однако квалификаторы, объявленные для класса или экземпляра, не распространяются на свойства этого класса или экземпляра. Кроме того, варианты модификации, устанавливающие переопределение прав, допустимы только при условии, что вы также задаёте варианты ToInstance или ToSubClass.

Вкус может быть глобально назначен квалификатору для всего MOF-файла с помощью следующего синтаксиса, в котором пробел выступает в качестве разделителя при указании нескольких вкусов.

Qualifier QualifierName : flavor1 <flavor2...>;

Глобальные параметры применяются ко всеми последующими использованиям квалификатора в MOF-файле. Глобальные заявления настройки могут находиться в любом месте файла вне блока объявления объекта. Вкусы, переопределённые на уровне класса, экземпляра или свойства, отменяют глобальные объявления вкусов для данного объекта.

Вы не можете определить новый вкус. Хотя вы можете создать новый квалификатор, используйте только существующие варианты квалификаторов для описания вашего нового квалификатора.

Определение видов квалификаторов в MOF

  • Объявите вкусы, описывающие данный квалификатор, после имени квалификатора в скобках. Используйте пробелы в качестве разделителя между несколькими вкусами.

    В следующем примере показан шаблон прикрепления предопределенных квалификаторов.

    [qualifier1 : flavor1 flavor2 flavor3, qualifier2 : flavor1]
    

Вы можете добавлять квалификаторы программным способом только в C++. Эта операция недоступна в API скриптов для WMI, хотя можно добавить новый квалификатор, вызвав SWbemQualifierSet.Add.

Назначить вкус с помощью C++

  • Вызовите метод IWbemQualifierSet::Put с параметром lFlavor, заданным на одну из констант, определенных для метода.