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


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

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

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

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

Свойство должно иметь тип данных. Тип данных свойства handle свойства Win32_Processstring , а тип данных PageFaultsuint32. Если свойство может иметь только два состояния, тип данных свойства обычно имеет значение boolean.

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

Свойство может иметь несколько квалификаторов. Эти квалификаторы могут быть квалификаторамиcommon information model (CIM) или WMI или могут быть специфичны для определенных типов классов, например квалификаторов класса счетчика производительности . Квалификаторы указывают некоторый аспект свойства, например, если оно доступно только для чтения или если его нельзя изменить без определенного разрешения. Например, приложению, которое пытается выполнить запись в свойство DACL Win32_SecurityDescriptor, требуются привилегии SeSecurityPrivilege и SeRestorePrivilege. Дополнительные сведения см. в разделе Добавление квалификатора.

Наконец, свойство должно иметь имя. Вы можете назвать свойство любым в пределах стандартной практики программирования. Однако существует два main исключения. Во-первых, в качестве имени свойства нельзя использовать 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 определяет строковое свойство как ключевое свойство, которое однозначно идентифицирует экземпляр класса . Дополнительные сведения о квалификаторах см. в разделе Добавление квалификатора.

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