Delen via


Een WMI-eigenschap toevoegen

Eigenschappen in WMI-klassen beschrijven gegevens over een beheerd object. Zo worden , ProcessIden PageFaults gedefinieerd als eigenschappen van de Win32_Process-klasse en beschrijven ze aspecten van een proces binnen een besturingssysteem. Zie Een eigenschapsprovider schrijvenvoor meer informatie.

Een eigenschap definiëren in MOF

Een WMI-eigenschap vertegenwoordigt een aspect of status van het object. In plaats van methoden te maken die eenvoudigweg een waarde ophalen en instellen, kunt u een eigenschap maken. De eigenschap NetEnabled van Win32_NetworkAdapter geeft bijvoorbeeld weer of de status van de adapter is ingeschakeld of uitgeschakeld. Echter, de methoden inschakelen en uitschakelen voeren de actie van daadwerkelijk wijzigen van de status van de adapter uit.

Een eigenschap moet een gegevenstype hebben. Het gegevenstype van de eigenschap Win32_ProcessHandle is string en het gegevenstype van PageFaults is uint32. Als een eigenschap slechts twee statussen kan hebben, wordt het gegevenstype van de eigenschap normaal gesproken ingesteld op booleaanse.

De eigenschap kan ook een array zijn. De eigenschap beveiligings-id (SID) van Win32_Trustee is bijvoorbeeld een bytematrix (uint8) die de SID bevat. Eigenschappen kunnen ingesloten objecten bevatten die verwijzen naar een of meer exemplaren van een andere WMI-klasse. De discretionaire toegangsbeheerlijst (DACL) en (SACL) eigenschappen van Win32_SecurityDescriptorzijn bijvoorbeeld matrices van Win32_ACE objecten die de groepen en accounts beschrijven die toegang hebben. De eigenschap Groep in Win32_SecurityDescriptor bevat een verwijzing naar één exemplaar van Win32_Trustee. Zie Objecten insluiten in een klassevoor meer informatie.

Een woning kan verschillende kwalificaties hebben. Deze kwalificaties kunnen kwalificaties van het Common Information Model (CIM) of WMI-kwalificaties zijn, of specifiek zijn voor bepaalde soorten klassen, bijvoorbeeld de prestatie-iconometer klasse-kwalificaties. Kwalificaties specificeren een bepaald aspect van de eigenschap, zoals of deze alleen-lezen is of of deze niet kan worden gewijzigd zonder dat er een specifieke bevoegdheid is. Een toepassing die probeert te schrijven naar de Win32_SecurityDescriptorDACL- eigenschap, vereist bijvoorbeeld de bevoegdheden SeSecurityPrivilege en SeRestorePrivilege. Zie Een kwalificatie toevoegenvoor meer informatie.

Ten slotte moet een eigenschap een naam hebben. U kunt een eigenschap een naam opgeven binnen de grenzen van de standaardprogrammeerpraktijk. Er zijn echter twee belangrijke uitzonderingen. Ten eerste mag u geen MOF-trefwoord, zoals 'klasse', gebruiken als eigenschapsnaam. Ten tweede mag u ook geen WQL-trefwoorden, zoals 'groep', gebruiken als eigenschapsnaam. Zie MOF-gegevenstypen en WQL (SQL for WMI) voor meer informatie over MOF- en WQL-trefwoorden.

Voor zowel C++ als MOF-code (Managed Object Format) declareert u de eigenschappen van een klasse op hetzelfde moment dat u de klasse declareert.

Een eigenschap definiëren

  • Neem het gegevenstype, de naam van de eigenschap en een optionele standaardwaarde en kwalificatie tussen de accolades van de klassebeschrijving op.

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

    De klasse MyClass in het voorgaande voorbeeld heeft drie eigenschappen: een tekenreeks, een 32-bits geheel getal met teken en een 32-bits geheel getal zonder teken. Aan elke eigenschap wordt een niet-hoofdlettergevoelige naam en een MOF-gegevenstype toegewezen.

    De Key kwalificatie definieert de tekenreekseigenschap als de sleuteleigenschap waarmee een exemplaar van de klasse uniek wordt geïdentificeerd. Zie Een kwalificatie toevoegenvoor meer informatie over kwalificaties.

Een klasse maken