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


Добавление свойства WMI

Свойства в классах WMI описывают данные об управляемом объекте. Например, Handle, ProcessId и PageFaults определяются как свойства класса Win32_Process и описывают аспекты процесса операционной системы. Дополнительные сведения см. в записи Провайдера Свойств.

Определение свойства в MOF

Свойство WMI представляет аспект или состояние объекта. Вместо создания методов, которые просто получают и задают значение, можно создать свойство. Например, свойство NetEnabled показывает, находится ли адаптер Win32_NetworkAdapter в состоянии включения или отключения. Однако методы Включить и Отключить фактически выполняют действие изменения состояния адаптера.

Свойство должно иметь тип данных. Тип данных свойства Win32_ProcessHandle является строковым, а тип данных PageFaults является uint32. Если свойство может иметь только два состояния, тип данных свойства обычно устанавливается в булев.

Свойство также может быть массивом. Например, свойство идентификатора безопасности (SID) объекта Win32_Trustee представляет собой массив байтов (uint8), содержащий SID. Свойства могут содержать внедренные объекты, которые ссылаются на один или несколько экземпляров другого класса WMI. Дискреционный список управления доступом (DACL) и системный список управления доступом (SACL) свойства Win32_SecurityDescriptor, например, являются массивами объектов Win32_ACE, которые описывают группы и учетные записи, имеющие доступ. Свойство группы в Win32_SecurityDescriptor содержит ссылку на один экземпляр Win32_Trustee. Дополнительные сведения см. в разделе Внедрение объектов в класс.

Свойство может иметь несколько квалификаторов . Эти квалификаторы могут быть Общей информационной моделью (CIM) или квалификаторами WMI, которые могут быть характерными для определенных типов классов, например, квалификаторы классов производительных счетчиков, таких как счетчик производительности. Квалификаторы указывают некоторые аспекты свойства, например, если он доступен только для чтения или если он не может быть изменен без определенной привилегии. Приложение, которое пытается записать в свойство Win32_SecurityDescriptorDACL, требует, например, привилегий SeSecurityPrivilege и SeRestorePrivilege. Дополнительные сведения см. раздел Добавление квалификатора.

Наконец, свойство должно иметь имя. Вы можете присвоить свойству любое имя в пределах стандартной практики программирования. Однако существует два основных исключения. Во-первых, вы не можете использовать любое ключевое слово MOF, например "class", в качестве имени свойства. Во-вторых, вы не можете использовать ключевые слова WQL, такие как group, в качестве имени свойства. Дополнительные сведения о ключевых словах MOF и WQL см. в разделах типы данных MOF и WQL (SQL для WMI).

Для кода C++ и Управляемого формата объектов (MOF) вы объявляете свойства класса одновременно, объявляя класс.

Определение свойства

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

    class MyClass 
    {
        [key] string   strProp;
        sint32         dwProp1 = 21;
        uint32         dwProp2;
    };
    

    Класс MyClass в предыдущем примере имеет три свойства: символьная строка, 32-разрядное целое число со знаком и 32-разрядное целое число без знака. Каждому свойству присваивается имя, нечувствительное к регистру, и тип данных MOF.

    Квалификатор Key определяет строковое свойство в качестве свойства ключа, которое однозначно идентифицирует экземпляр класса. Для получения дополнительной информации о квалификаторах см. раздел Добавление квалификатора.

создание класса