实现属性提供程序的主接口

属性提供程序使用 IWbemPropertyProvider 方法作为 WMI 的主接口。 使用 IWbemPropertyProvider,可以实现代码来检索和修改类和实例属性。

下表列出了可为属性提供程序实现的 IWbemPropertyProvider 方法。

方法 功能
GetProperty 检索
PutProperty 修改

 

注意

必须将属性提供程序实现为进程内提供程序。 WMI 将初始化作为服务或可执行文件编写的属性提供程序,但永远不会调用其 GetPropertyPutProperty 方法。

 

如果选择不支持其中一种方法,提供程序可提供返回 WBEM_E_PROVIDER_NOT_CAPABLE 的存根实现。

属性提供程序通过一组三个限定符来标识托管类或实例:PropertyContext、InstanceContext 和 ClassContext。 WMI 会将描述这三个限定符的字符串常量传递给属性提供程序。

属性提供程序必须准备好处理以下类型的上下文限定符:

  • InstanceContext 限定符附加到实例,并包含适用于实例中每个属性的信息。
  • ClassContext 限定符附加到类,并包含适用于类中每个实例的信息。 例如,在用于存储注册表提供程序提供的数据的类中,ClassContext 可以是包含要报告的属性的注册表项的路径。
  • PropertyContext 限定符指定与属性相关的特定于上下文的信息。 例如,在用于存储注册表提供程序提供的数据的类中,PropertyContext 指定要由属性存储的注册表值的名称。

这些限定符可协同工作。 可同时指定 InstanceContext 和 PropertyContext 值,告知提供程序如何处理特定类型的实例。 例如,你可能希望标记提供程序识别为可读但只有一个可写属性的实例。

最常用的限定符是 PropertyContext。 因此,WMI 提供 DynProps 限定符作为快捷方式。 WMI 认为实例中标记有 DynProps 的每个属性也具有 Dynamic、Provider 和 PropertyContext 限定符。