Freigeben über


Qualifizierer „ValueMap“ und „Value“

Eine Wertzuordnung ist ein Array, das mit einer Eigenschaft mit den Qualifizierern Value und ValueMap verknüpft ist.

Die Eigenschaft fungiert als Index für das Array und enthält einen Wert, der einen der Werte im Array darstellt. Mit MOF-Code sind folgende Arten von Wertzuordnungen möglich:

  • Zuordnung eines Arrays zu einer ganzen Zahl:

    Sie können ein Array mit dem Qualifizierer Value definieren und das Array wie im folgenden Beispiel gezeigt direkt mit einer ganzzahligen Eigenschaft verknüpfen:

    [Values {"OK", "Error", "Degraded", "Unknown"}, Read]
    sint32 Status;
    

    In diesem Beispiel ist der Wert der Eigenschaft Status ein Index für das durch Value definierte Zeichenfolgenarray. Die Eigenschaft kann nur Werte annehmen, die den Ordnungspositionen im Array Value minus 1 entsprechen. Wenn Status beispielsweise auf „1“ festgelegt wird, entspricht dies einer Zuordnung zum Wert „Error“. Die Indexeigenschaft kann nur Werte annehmen, die Positionen im Array Value entsprechen. Wenn das Array beispielsweise zehn Einträge enthält, kann die Indexeigenschaft 0 bis 9 darstellen, aber nicht 30 oder 177.

  • Zuordnung eines Arrays zu einer anderen Arrayzuordnung zu einer ganzen Zahl:

    Wenn Sie einen Index erstellen möchten, der kein Ordnungszahlsystem verwendet, können Sie den Qualifizierer ValueMap verwenden. Der Qualifizierer ValueMap richtet ein weiteres Array ein, das ein beliebiges Indexnummerierungssystem enthält, wie im folgenden Beispiel zu sehen:

    [ValueMap {"1", "3", "99", "0"}, 
     Values {"OK", "Error", "Degraded", "Unknown"}, Read]
    sint32 Status;
    

    Die Werte von ValueMap müssen zwar in Anführungszeichen gesetzt werden, werden von WMI aber als ganze Zahlen betrachtet. Daher können Sie in diesem Beispiel die Eigenschaft Status auf eine ganze Zahl aus ValueMap festlegen: 1, 3, 99 oder 0. WMI ordnet jede ganze Zahl einer Ordnungsposition aus dem ValueMap-Zeichenfolgenarray einer entsprechenden Position im Value-Array zu. Wenn Status beispielsweise auf „0“ festgelegt wird, entspricht dies einer Zuordnung zu „Unknown“.

  • Zuordnung eines Arrays zu einer anderen Arrayzuordnung zu einer Zeichenfolge:

    Wenn Sie Ihr Array nicht mithilfe einer ganzen Zahl indizieren möchten, können Sie stattdessen eine Zeichenfolge verwenden, um einen der möglichen Werte in Ihrem Array zu speichern. Dazu müssen Sie sowohl ein Value- als auch ein ValueMap-Array definieren, das beide Zeichenfolgen enthält, wie im folgenden Beispiel zu sehen:

    [ValueMap {"OK", "Error", "Degraded", "Unknown"}, 
     Values {"OK", "Error", "Degraded", "Unknown"}, Read]
    string Status;
    

    Bei einer Zeichenfolgeneigenschaft sind die tatsächlich zulässigen Werte der Eigenschaft die Einträge im ValueMap-Array. Beispielsweise können Sie Status auf „OK“ oder „Unknown“ festlegen.

Die Aufgabe der Anwendung besteht darin, die Vorteile von Zuordnungen sinnvoll zu nutzen. Die Aufgabe des Anbieters besteht darin, einen zulässigen Wertebereich zu erzwingen.

Bemerkungen

Überlegen Sie sich im Zusammenhang mit der Verwendung der Qualifizierer ValueMap/Value oder BitMap/BitValues, ob einer der angegebenen Werte gleichzeitig auftreten kann. Wenn mehrere Werte gleichzeitig vorhanden sein können, müssen Sie BitMap/BitValues verwenden. Wenn sich alle Werte gegenseitig ausschließen, sollten Sie die Qualifizierer ValueMap/Value verwenden.

BitMap und BitValues