Dela via


Tillämpa en kvalificerare

Precis som många andra tekniker i MOF (Managed Object Format) är det en relativt enkel process att tillämpa en kvalificerare på din kod.

De enda verkliga utmaningarna är följande begränsningar i namngivningskonventioner som WMI tillämpar:

  • En kvalificerare kan beskriva en klass-, instans-, egenskaps-, metod- eller metodparameter.

  • Kvalificerarnamn får varken börja eller sluta med understreck.

  • Det går inte att börja med ett kvalificerarnamn med en siffra.

  • Ett kvalificerarnamn får inte innehålla specialtecken som & * @ ! ~ \ /.

  • Alla kvalificerarnamn är skiftlägeskänsliga.

  • Du kan inte omdefiniera standard-WMI-kvalificerare eller kvalificerare som beskrivs i DMTF CIM-specifikationen.

  • Kvalificeringstyper deklareras inte uttryckligen.

    Om du inte deklarerar en kvalificerartyp förutsätter WMI att typen är boolesk med värdet TRUE-. Annars typer WMI kvalifikationer baserat på de kvalifikatorvärden du deklarerar.

  • När du skapar egna kvalificerare bör du sätta ditt schemanamn som prefix till kvalificerarens namn.

    Syftet med den här regeln är att undvika förvirring med nya beteckningar.

  • Du kan skapa homogena matriser av kvalifikatorer.

    Följande kodexempel visar hur kvalificerarmatriser anges med klammerparenteser som omger värdena.

    [StringArray{"hello", "there"}, SingleElementArray{3}]
    
  • WMI stöder inte automatiseringstyper som inte anges i referensen, till exempel VT_NULL. Mer information finns i MOF-datatyper.

Följande procedur hjälper dig att använda C++ för att lägga till en kvalificerare i en egenskap.

Att använda en kvalificerare med C++

Följande procedur hjälper dig att tillämpa en kvalifikator i MOF-filer.

Beskriva ett nyckelord eller en identifierare med en kvalificerare med hjälp av MOF-

  • Placera en kvalificerare inom hakparenteser före nyckelordet eller identifieraren som beskrivs av kvalificeringen.

    Följande kodexempel visar hur kvalificerare används.

    [qualifiers...]
    class StdDisk
    {
      [qualifiers...]  uint32 dwNumCylinders;
      [qualifiers...]  uint32 dwNumHeads;
      [qualifiers...]  sint32 Method1();
      sint32 Method2([qualifiers...] Parameter1);
    };
    

    I följande exempel beskrivs korrekt placering av kvalificerare.

    [Abstract]
    class MyClass
    {
        [Amendment, InstanceOf]  uint32 dwNumber;
        sint32 MyMethod ([in] sint32 Param);
    };