INDEX 子句
INDEX 子句指定要在标量或表集合中选择唯一行的键。 SNMP 提供程序根据 SNMP 设备使用的表类型映射到不同类型的 CIM 类。 由于键可以是多个对象类型,因此提供程序使用不同的映射规则,具体取决于键中的对象类型。 有关详细信息,请参阅 INDEX 子句数据类型。
注意
有关安装提供程序的详细信息,请参阅 设置 WMI SNMP 环境。
标量集合映射到 CIM 单一实例类:即只能有一个实例的类。 由于无需从另一个实例唯一标识一个实例,因此单一实例类不会将一个或多个属性指定为键。 从标量集合生成的类:
- 不包含 密钥 属性限定符。
- 请包含标准 CIM 类限定符 Singleton,该限定符的类型 Bool。
表集合映射到可以有多个实例的 CIM 类。 因此,CIM 类定义必须至少包含一个定义对象键的属性;即唯一标识类实例的属性。 表集合的 OBJECT-TYPE 宏的 INDEX 子句指定集合的键属性集。 以下映射规则适用:
CIM 限定符 密钥类型 Bool定义键属性。
表集合中 INDEX 信息的排序定义 CIM 类定义中的键的顺序。
CIM 限定符 Key_Order 定义键的排序。 此限定符是一个无符号 32 位整数值,出于 MOF 限定符语法的目的,必须使用双补运算转换为有符号 32 位整数值。
目前,SNMPv2C INDEX 子句的映射不会处理使用 默示 限定符。 在这种情况下,不会生成 CIM 类定义。
INDEX 子句数据类型
由于 OBJECT-TYPE 宏中 INDEX 子句的灵活性,因此键式属性的规范并不简单。 相反,应考虑 INDEX 子句可能包含以下一个或多个数据类型的可能性:
indexobject 值在内部访问
indexobject 值是一个命名值,它引用在包含 INDEX 子句的同一表的概念行中显示的 MIB 对象定义。 INDEX 子句中引用的 MIB 对象定义映射到 CIM 类定义的键属性。
可从外部访问的 indexobject 值
在本例中,indexobject 是一个命名值,它引用另一个表的概念行中显示的 MIB 对象定义。
可访问的 indextype 值
索引类型 值是引用以下数据类型之一的命名类型:INTEGER、OCTET STRING、OBJECT IDENTIFIER、NetworkAddress或 IpAddress。 如果 INDEX 子句包含 MIB 类型引用,则适用以下映射规则:
- 引用的 MIB 对象映射到 CIM 类定义的键属性。 其类型语法基于指定的 索引类型 值,它使用标准 SYNTAX 子句 映射过程映射到 CIM 属性限定符。
- 映射过程通过连接 MIB 表对象描述符、下划线(_)和 INDEX 子句的排名顺序 indextype 值来生成唯一的属性名称。 例如,enterpriseIfTable MIB 表的第三个组件 索引类型 的属性名称 enterpriseIfTable_3。
- CIM 属性使用 Virtual_Key 限定符进行批注。 此限定符指定 SNMP 提供程序应基于与类定义中的所有可访问 MIB 对象定义关联的实例信息的超集计算属性的值。
- CIM 类定义必须至少包含一个没有关联 Virtual_Key 限定符的属性;未能指定此属性会使类定义失效。
固定长度子类型
当 SNMP 表集合的 INDEX 子句包含作为固定长度的 OCTET STRING 子类型支持的 SNMP 类型时,必须使用 CIM 属性限定符 Fixed_Length 来指定此值。