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++
Använd kvalificeraren med ett anrop till metoden IWbemQualifierSet::Put.
Du kan använda andra metoder i IWbemQualifierSet för att hämta eller ta bort befintliga kvalificerare.
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); };