Delen via


MOF-klassen (Managed Object Format) ontwerpen

Een WMI-provider bestaat uit een MOF-bestand (Managed Object Format) en DLL-bestand. Het MOF-bestand definieert de klassen waarvoor de implementatie van de provider gegevens levert.

De MOF-klassedefinities worden gecompileerd door het hulpprogramma mofcomp en opgeslagen in de WMI-opslagplaats, ook wel bekend als de CIM-opslagplaats (Common Information Model). Een minder gebruikelijke manier om klassen te maken, is via de methoden van de COM-API voor WMI-.

Notitie

Als u ervoor wilt zorgen dat al uw WMI-klassedefinities voor beheerde objecten worden hersteld naar de WMI-opslagplaats als WMI een fout heeft en opnieuw wordt opgestart, gebruikt u de #pragma autoherstel-instructie preprocessorinstructie in uw MOF-bestand.

 

In dit onderwerp worden de volgende secties besproken:

De objecten definiëren die moeten worden beheerd

Nadat u het deel van uw onderneming hebt geïdentificeerd dat moet worden beheerd, definieert u de objecten die u wilt beheren. De definitie moet de vereiste gegevens bevatten en u kunt de relevante bedrijfsregels nauwkeurig implementeren. U kunt objecten op een gedetailleerd niveau definiëren, maar u kunt het beste beslissen tussen het detailniveau in de definitie en de noodzaak om voldoende details te verstrekken om nuttig te zijn. Snelkoppelingen kunnen vroeg in het proces tijd besparen, maar kunnen in de toekomst meer werk veroorzaken.

De CIM-zelfstudie op de DMTF-website (Distributed Management Task Force) bevat uitstekende informatie over het ontwerpproces. Zie www.dmtf.orgvoor meer informatie.

Houd rekening met de volgende factoren bij het ontwikkelen en implementeren van een schemaontwerp:

  • Kwalificatiewedstrijden

    Kwalificaties geven informatie over het beschrijven van klassen, objecten, eigenschappen, methoden en parameters; en ze worden toegepast op klasse- en eigenschapsdefinities. In MOF-code worden kwalificatoren tussen vierkante haken geplaatst en kunnen [sleutel] of [koppeling] bevatten. Zie voor meer informatie Een kwalificatie toevoegen en WMI Kwalificaties.

  • Namespace

    Een naamruimte is een logische eenheid voor het groeperen van klassen en objecten en het beheren van het bereik en de zichtbaarheid. Normaal gesproken bevat een naamruimte een set klassen en objecten die beheerde objecten in een specifieke omgeving vertegenwoordigen. Zie Hiërarchieën maken binnen WMI-voor meer informatie.

  • Voorwerp

    Een gemodelleerd object kan een fysiek of logisch element van het schema zijn. U kunt bijvoorbeeld een fysieke schijf zoals een harde schijf of een logische schijf modelleren die een partitie op een fysieke schijf kan zijn. Een ontwerp dat gebruikmaakt van een klasse om een fysiek schijfstation te modelleren en die klasse vervolgens uitbreidt om een logische schijf te modelleren, is uitbreidbaarer dan een klasse die probeert een afzonderlijke klasse te maken voor elk type schijf.

  • Gegevens

    Gegevens kunnen dynamisch of statisch zijn. Als de gegevens dynamisch zijn, moet u er een klasseprovider voor maken.

    Als u wilt dat de gebruiker gegevens kan wijzigen, moet u bepalen of u een eigenschap rechtstreeks beschrijfbaar of wijzigbaar wilt maken met behulp van een methode die de gebruiker aanroept.

Eigenschappen of methoden definiëren

Over het algemeen is een WMI-klasse-eigenschap vergelijkbaar met een eigenschap in een C++-klasse. Als de enige acties die door uw code worden geïmplementeerd voor het stukje gegevens, is om de waarde op te halen of de waarde in te stellen, moeten de gegevens worden gedefinieerd als een eigenschap van de WMI-klasse.

Een WMI-methode voert doorgaans een actie uit waarmee de status van een beheerd object wordt gewijzigd. Als de actie bijvoorbeeld is om de werking van een hardwareobject in of uit te schakelen, is een methode waarschijnlijk de voorkeur om een lees-/schrijfeigenschap te maken. U kunt ook besluiten om een eigenschap te maken die de status van de hardware weergeeft.

Wanneer u een klasse of exemplaar maakt, kunt u opmerkingen toevoegen. Gebruik deze techniek om uw klas te documenteren of uw programmeertechnieken uit te leggen. Zie Een opmerking makenvoor meer informatie. Daarnaast kunt u gegevens toevoegen om het doel van een gegevensobject te kwalificeren. Zie Een kwalificatie toevoegenvoor meer informatie.

Objecten aan elkaar koppelen

Er zijn twee manieren om objecten aan elkaar te relateren: door afzonderlijke objecten en een koppelingsobject te maken dat ze koppelt, of door het ene object in te sluiten in het andere. CIM biedt geen ondersteuning voor ingesloten objecten, dus als u CIM-compatibel wilt zijn, moet u de eerste methode gebruiken. WMI ondersteunt echter ingesloten objecten, dus gebruik een van beide methoden om een relatie tussen objecten weer te geven. U vindt voorbeelden van ingesloten objecten in de Win32-klassen. Win32_SecurityDescriptor heeft bijvoorbeeld het ingesloten object Win32_ACE, dat een ander ingesloten object heeft, Win32_Trustee.

Houd rekening met het volgende bij het bepalen hoe relaties tussen objecten moeten worden weergegeven:

een WMI-provider ontwikkelen

Gegevens verstrekken aan WMI-

MOF-gegevenstypen