INDEX 句
INDEX 句では、スカラーまたはテーブル コレクション内の一意の行を選択するキーを指定します。 SNMP プロバイダーは、SNMP デバイスで使用するテーブルの種類に応じて、異なる種類の CIM クラスにマップされます。 キーには複数の種類のオブジェクトを指定できるため、プロバイダーではキー内のオブジェクトの種類に応じて異なるマッピング規則が使用されます。 詳細については、INDEX 句のデータ型に関する記事を参照してください。
注意
プロバイダーのインストールの詳細については、「WMI SNMP 環境の設定」を参照してください。
スカラー コレクションは、CIM シングルトン クラス (インスタンスを 1 つだけ持つことができるクラス) にマップされます。 あるインスタンスを別のものから一意に識別する必要がないため、シングルトン クラスでは 1 つ以上のプロパティをキーとして指定しません。 スカラー コレクションから生成されたクラス:
- Key プロパティ修飾子は含めないでください。
- 標準の CIM クラス修飾子 Singleton (Bool 型) を含めてください。
テーブル コレクションは、複数のインスタンスを持つことができる CIM クラスにマップされます。 その結果、CIM クラス定義には、オブジェクト キーを定義するプロパティ (つまり、クラスのインスタンスを一意に識別するプロパティ) が少なくとも 1 つ含まれている必要があります。 テーブル コレクションの OBJECT-TYPE マクロの INDEX 句では、コレクションのキー プロパティのセットを指定します。 次のマッピング規則が適用されます。
CIM 修飾子 Key (Bool 型) では、キー プロパティを定義します。
テーブル コレクション内の INDEX 情報の順序によって、CIM クラス定義内のキーの順序が定義されます。
CIM 修飾子 Key_Order では、キーの順序を定義します。 この修飾子は符号なし 32 ビット整数値であり、MOF 修飾子構文のために、2 の補数演算を使用して符号付き 32 ビット整数値に変換する必要があります。
現時点では、SNMPv2C INDEX 句のマッピングでは、IMPLIED 修飾子の使用は処理されません。 この場合、CIM クラス定義は生成されません。
INDEX 句のデータ型
OBJECT-TYPE マクロ内の INDEX 句は柔軟性があるため、キー付きプロパティの指定は簡単ではありません。 代わりに、INDEX 句に次の 1 つ以上のデータ型が含まれる可能性があることを考慮する必要があります。
内部的にアクセス可能な indexobject 値
indexobject 値は、INDEX 句を含む同じテーブルの概念行に表示される MIB オブジェクト定義を参照する名前付き値です。 INDEX 句で参照される MIB オブジェクト定義は、CIM クラス定義のキー プロパティにマップされます。
外部からアクセス可能な indexobject 値
この場合、indexobject は、別のテーブルの概念行に表示される MIB オブジェクト定義を参照する名前付き値です。
アクセス可能な indextype 値
indextype 値は、INTEGER、OCTET STRING、OBJECT IDENTIFIER、NetworkAddress、または IpAddress のいずれかのデータ型を参照する名前付き型です。 INDEX 句に MIB 型の参照が含まれている場合は、次のマッピング規則が適用されます。
- 参照される MIB オブジェクトは、CIM クラス定義のキー プロパティにマップされます。 その型構文は、指定された indextype 値に基づいており、標準の SYNTAX 句マッピング プロシージャを使用して CIM プロパティ修飾子にマップされます。
- マッピング プロセスでは、MIB テーブル オブジェクト記述子、アンダースコア (_)、INDEX 句の indextype 値のランク順を連結することで、一意のプロパティ名が生成されます。 たとえば、MIB テーブル enterpriseIfTable の 3 番目の部分 indextype のプロパティ名は enterpriseIfTable_3 です。
- CIM プロパティには、Virtual_Key 修飾子で注釈が付けられます。 クラス定義内のすべてのアクセス可能な MIB オブジェクト定義に関連付けられているインスタンス情報のスーパーセットに基づいて、SNMP プロバイダーでプロパティの値を計算することをこの修飾子によって指定します。
- CIM クラス定義には、Virtual_Key 修飾子が関連付けられていないプロパティが少なくとも 1 つ含まれている必要があります。このプロパティを指定しないと、クラス定義が無効になります。
固定長サブタイプ
SNMP テーブル コレクションの INDEX 句に、固定長の OCTET STRING としてサブタイプ化された、SNMP でサポートされる型が含まれている場合は、CIM プロパティ修飾子 Fixed_Length を使用してこの値を指定する必要があります。