应用限定符
与托管对象格式 (MOF) 中的许多其他技术一样,将限定符应用于代码是一个相对简单的过程。
唯一真正的挑战是 WMI 强制执行的命名约定中的以下限制:
限定符可以描述类、实例、属性、方法或方法参数。
限定符名称不能包含前导下划线或尾随下划线。
限定符不能以数字开头。
限定符名称不能包含特殊字符,如 & * @ ! ~ \ /.
所有限定符名称不区分大小写。
不能重新定义标准 WMI 限定符或 DMTF CIM 规范中描述的任何限定符。
未显式声明限定符类型。
如果未声明限定符类型,则 WMI 假定类型为布尔值,值为 TRUE。 否则,WMI 会根据声明的限定符值来设定限定符的类型。
创建自己的限定符时,应将架构名称作为限定符名称的前缀。
此规则的目的是避免与新限定符混淆。
可以创建限定符的同质数组。
下面的代码示例演示如何使用值周围的大括号指定限定符数组。
[StringArray{"hello", "there"}, SingleElementArray{3}]
WMI 不支持使用引用中未列出的自动化类型,例如 VT_NULL。 有关详细信息,请参阅 MOF 数据类型。
以下过程可帮助你使用 C++ 向属性添加限定符。
使用 C++ 应用限定符
通过调用 IWbemQualifierSet::Put 方法应用限定符。
可以使用 IWbemQualifierSet 的其他方法检索或删除现有限定符。
以下过程可帮助你在 MOF 文件中应用限定符。
使用 MOF 描述带有限定符的关键字或标识符
将限定符放在限定符描述的关键字或标识符之前并用括号括起来。
以下代码示例演示如何使用限定符。
[qualifiers...] class StdDisk { [qualifiers...] uint32 dwNumCylinders; [qualifiers...] uint32 dwNumHeads; [qualifiers...] sint32 Method1(); sint32 Method2([qualifiers...] Parameter1); };
以下示例描述如何正确放置限定符。
[Abstract] class MyClass { [Amendment, InstanceOf] uint32 dwNumber; sint32 MyMethod ([in] sint32 Param); };