Hinzufügen einer WMI-Eigenschaft

Eigenschaften in WMI-Klassen beschreiben Daten zu einem verwalteten Objekt. Beispielsweise werden Handle, ProcessId und PageFaults als Eigenschaften der Win32 _ Process-Klasse definiert und beschreiben Aspekte eines Betriebssystemprozesses. Weitere Informationen finden Sie unter Schreiben eines Eigenschaftenanbieters.

Definieren einer Eigenschaft in MOF

Eine WMI-Eigenschaft stellt einen Aspekt oder Zustand im -Objekt dar. Anstatt Methoden zu erstellen, die einfach einen Wert abrufen und festlegen, können Sie eine Eigenschaft erstellen. Die NetEnabled-Eigenschaft von Win32 _ NetworkAdapter zeigt beispielsweise an, ob der Status des Adapters aktiviert oder deaktiviert ist. Die Methoden Enable und Disable führen jedoch tatsächlich die Aktion zum Ändern des Adapterzustands aus.

Eine Eigenschaft muss einen Datentyp aufweisen. Der Datentyp der Win32 _ Process-Eigenschaft Handle ist string, und der Datentyp von PageFaults ist uint32. Wenn eine Eigenschaft nur zwei Zustände aufweisen kann, wird der Datentyp der Eigenschaft normalerweise auf den booleschen Wert festgelegt.

Die -Eigenschaft kann auch ein Array sein. Die Sicherheitsbezeichnereigenschaft (SID) des Win32-Vertrauensnehmers _ ist beispielsweise ein Bytearray (uint8), das die SID enthält. Eigenschaften können eingebettete Objekte enthalten, die Verweise auf eine oder mehrere Instanzen einer anderen WMI-Klasse sind. Die Eigenschaften discretionary access control list (DACL) und system access control list (SACL) von Win32 _ SecurityDescriptorsind beispielsweise Arrays von Win32 _ ACE-Objekten, die die Gruppen und Konten beschreiben, die Zugriff haben. Die Group-Eigenschaft in Win32 _ SecurityDescriptor enthält einen Verweis auf eine einzelne Instanz von Win32-Vertrauensnehmer _. Weitere Informationen finden Sie unter Einbetten von Objekten in eine Klasse.

Eine Eigenschaft kann mehrere Qualifizierer aufweisen. Diese Qualifizierer können Common Information Model (CIM) oder WMI-Qualifizierer sein oder für bestimmte Klassentypen spezifisch sein, z. B. leistungsindikatorklassenqualifizierer. Qualifizierer geben einen Aspekt der Eigenschaft an, z. B. wenn sie schreibgeschützt ist oder wenn sie nicht ohne eine bestimmte Berechtigung geändert werden kann. Eine Anwendung, die versucht, in die Win32 _ SecurityDescriptor-DACL-Eigenschaftzu schreiben, erfordert beispielsweise die Berechtigungen SeSecurityPrivilege und SeRestorePrivilege. Weitere Informationen finden Sie unter Hinzufügen eines Qualifizierers.

Schließlich muss eine Eigenschaft einen Namen haben. Sie können eine Eigenschaft innerhalb der Grenzen der Standardprogrammierungspraktiken benennen. Es gibt jedoch zwei Hauptnahmen. Zunächst dürfen Sie kein MOF-Schlüsselwort, z. B. "Klasse", als Eigenschaftennamen verwenden. Zweitens dürfen Sie auch keine WQL-Schlüsselwörter wie "group" als Eigenschaftennamen verwenden. Weitere Informationen zu MOF- und WQL-Schlüsselwörtern finden Sie unter MOF-Datentypen und WQL (SQL für WMI).

Sowohl für C++- als auch für Managed Object Format-Code (MOF) deklarieren Sie die Eigenschaften einer Klasse zur gleichen Zeit, in der Sie die Klasse deklarieren.

So definieren Sie eine Eigenschaft

  • Schließen Sie den Eigenschaftsdatentyp, den Namen und einen optionalen Standardwert und Qualifizierer zwischen den geschweiften Klammern der Klassenbeschreibung ein.

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

    Die MyClass-Klasse im vorherigen Beispiel verfügt über drei Eigenschaften: eine Zeichenfolge, eine 32-Bit-Ganzzahl mit Vorzeichen und eine 32-Bit-Ganzzahl ohne Vorzeichen. Jeder Eigenschaft wird ein Name ohne Empfindlichkeit der Groß-/Kleinschreibung und ein MOF-Datentyp zugewiesen.

    Der Schlüsselqualifizierer definiert die Zeichenfolgeneigenschaft als Schlüsseleigenschaft, die eine Instanz der -Klasse eindeutig identifiziert. Weitere Informationen zu Qualifizierern finden Sie unter Hinzufügen eines Qualifizierers.

Erstellen einer Klasse