ValueMap 修飾子と値修飾子
値マップは、Value と ValueMap 修飾子を持つプロパティ リンクされた配列です。
このプロパティは配列のインデックスとして機能し、配列内の値のいずれかを表す値を保持します。 MOF コードを使用すると、次の種類の値マップを使用できます。
整数への配列マッピング。
次の例に示すように、Value 修飾子を使用して配列を定義し、配列を整数プロパティに直接リンクできます。
[Values {"OK", "Error", "Degraded", "Unknown"}, Read] sint32 Status;
この例では、Status プロパティ値は、Valueで定義された文字列配列へのインデックスです。 このプロパティは、Value 配列から 1 を引いた位置の序数に対応する値のみを受け取ることができます。 たとえば、Status を "1" に設定すると、"Error" 値にマップされます。 index プロパティは、Value 配列内の位置に対応する値のみを受け取ることができます。 たとえば、配列に 10 個のエントリがある場合、index プロパティは 30 または 177 ではなく 0 から 9 のストーリーを作成できます。
整数への別の配列マッピングへの配列マッピング。
カウントの序数システムを使用しないインデックスを作成する場合は、ValueMap 修飾子を使用します。 ValueMap 修飾子は、次の例に示すように、任意のインデックス番号付けシステムを保持する別の配列を設定します。
[ValueMap {"1", "3", "99", "0"}, Values {"OK", "Error", "Degraded", "Unknown"}, Read] sint32 Status;
ValueMap の値を引用符で囲む必要がありますが、WMI では値の整数が考慮されます。 したがって、この例では、Status プロパティを、ValueMap セットの整数 (1、3、99、または 0) に設定できます。 WMI は、ValueMap 文字列配列内の序数の位置から、Value 配列内の対応する位置に各整数をマップします。 たとえば、Status を 0 に設定すると、"不明" にマップされます。
文字列への別の配列マッピングへの配列マッピング。
整数を使用して配列のインデックスを作成しない場合は、代わりに文字列を使用して配列内の使用可能な値の 1 つを保持できます。 これを行うには、次の例に示すように、Value と ValueMap 両方に文字列を含む配列を定義する必要があります。
[ValueMap {"OK", "Error", "Degraded", "Unknown"}, Values {"OK", "Error", "Degraded", "Unknown"}, Read] string Status;
文字列プロパティでは、プロパティの実際の許容値は、ValueMap 配列内のエントリです。 たとえば、状態 を "OK" または "不明" に設定できます。
便利な方法でマッピングを利用するのは、アプリケーションの責任です。 有効な範囲の値を適用するのはプロバイダーの責任です。
備考
ValueMap/Value を使用するか、BitMap /BitValues 修飾子使用するかを決定する際に、指定されている値のいずれかが同時に発生する可能性があるかどうかを判断します。 複数の同時実行値が存在する場合は、BitMap /BitValues使用する必要があります。 すべての値が相互に排他的な場合は、valueMap /Value 修飾子使用する必要があります。
関連トピック