ValueMap 和 Value 限定詞

值對應是連結至具有 ValueValueMap 限定詞之屬性的陣列。

屬性會做為陣列中的索引,保存代表陣列中其中一個值的值。 使用 MOF 程式碼,您可以有下列類型的值對應:

  • 陣列對應至整數。

    您可以使用 Value 限定詞定義陣列,並將陣列直接連結至整數屬性,如下列範例所示:

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

    在此範例中, Status 屬性值是 Value所定義的字串陣列索引。 屬性只能接受對應至 Value 陣列中序數位置減 1 的值。 例如,將 Status 設定為 「1」 會對應至 「Error」 值。 index 屬性只能接受對應至 Value 陣列中位置的值。 例如,如果陣列有 10 個專案,則索引屬性可以分鏡 0 到 9,而不是 30 或 177。

  • 陣列對應至另一個陣列對應至整數。

    如果您想要建立不使用計數序數系統的索引,請使用 ValueMap 限定詞。 ValueMap限定詞會設定另一個保存任意索引編號系統的陣列,如下列範例所示:

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

    雖然您必須將 ValueMap 的值放在引號中,但 WMI 會考慮值整數。 因此,在此範例中,您可以將ValueMap集合中的Status屬性設定為整數:1、3、99 或 0。 WMI 會將 ValueMap 字串陣列中序數位置的每個整數對應至 Value 陣列中的對應位置。 例如,將 [狀態 ] 設定為 0 會對應至 [未知]。

  • 陣列對應至另一個陣列對應至字串。

    如果您不想使用整數來編制陣列的索引,您可以改用字串來保存陣列中的其中一個可能值。 若要這樣做,您必須同時定義同時包含字串的 ValueValueMap 陣列,如下列範例所示:

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

    使用字串屬性時,屬性的實際允許值為 ValueMap 陣列中的專案。 例如,您可以將 [狀態 ] 設定為 [確定] 或 [未知]。

應用程式必須以有用的方式利用對應。 由提供者強制執行合法值範圍。

備註

在決定是否要使用ValueMap/BitMap/BitValues限定詞時,判斷是否可能同時發生任何指出的值。 如果有多個並行值存在,您必須使用BitMap/BitValues。 如果所有值互斥,您應該使用ValueMap/限定詞。

BitMap 和 BitValues