ValueMap- och Value Qualifiers
En värdekarta är en matris som är länkad till en egenskap med Value och ValueMap-kvalificerare.
Egenskapen fungerar som ett index i matrisen med ett värde som representerar ett av värdena i matrisen. Med MOF-kod kan du ha följande typer av värdekartor:
Matrismappning till ett heltal.
Du kan definiera en matris med Value-kvalificerare och länka matrisen direkt till en heltalsegenskap, som du ser i följande exempel:
[Values {"OK", "Error", "Degraded", "Unknown"}, Read] sint32 Status;
I det här exemplet är egenskapsvärdet Status ett index i strängmatrisen som definieras av Value. Egenskapen kan bara använda värden som motsvarar ordningspositionerna i Value matris minus 1. Om du till exempel anger Status till "1" mappas värdet "Fel". Indexegenskapen kan bara ta värden som motsvarar positioner i matrisen Value. Om matrisen till exempel har 10 poster kan indexegenskapen innehålla 0 till och med 9, inte 30 eller 177.
Matrismappning till en annan matrismappning till ett heltal.
Om du vill skapa ett index som inte använder ett ordningssystem för räkning använder du ValueMap--kvalificerare. ValueMap-kvalificeraren konfigurerar en annan matris som innehåller ett godtyckligt indexnumreringssystem, som du ser i följande exempel:
[ValueMap {"1", "3", "99", "0"}, Values {"OK", "Error", "Degraded", "Unknown"}, Read] sint32 Status;
Även om du måste placera värdena för ValueMap- i citattecken, tar WMI hänsyn till värdens heltal. I det här exemplet kan du därför ange egenskapen Status till ett heltal i ValueMap- uppsättning: 1, 3, 99 eller 0. WMI mappar varje heltal från en ordningsposition i strängmatrisen ValueMap till en motsvarande position i matrisen Value. Om du till exempel anger Status till 0 mappas till "Okänd".
Matrismappning till en annan matrismappning till en sträng.
Om du inte vill använda ett heltal för att indexera matrisen kan du i stället använda en sträng för att lagra ett av de möjliga värdena i matrisen. Om du vill göra det måste du definiera både en Value och ValueMap matris som båda innehåller strängar, som du ser i följande exempel:
[ValueMap {"OK", "Error", "Degraded", "Unknown"}, Values {"OK", "Error", "Degraded", "Unknown"}, Read] string Status;
Med en strängegenskap är de faktiska tillåtna värdena för egenskapen posterna i matrisen ValueMap. Du kan till exempel ange Status till "OK" eller "Okänd".
Det är upp till programmet att dra nytta av mappningar på ett användbart sätt. Det är upp till providern att framtvinga ett rättsligt värdeintervall.
Anmärkningar
När du bestämmer om du vill använda ValueMap/Value eller BitMap/BitValues-kvalificerare, avgör du om något av de värden som anges kan inträffa samtidigt. Om det finns flera samtidiga värden måste du använda BitMap/BitValues. Om alla värden är ömsesidigt uteslutande bör du använda ValueMap/Value-kvalificerare.
Relaterade ämnen