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

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

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

方法 功能
GetProperty 检索
PutProperty 修改

 

注意

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

 

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

属性提供程序通过一组三个限定符标识托管类或实例:PropertyContextInstanceContext 和 ClassContext WMI 将传入字符串常量,描述这三个限定符到属性提供程序。

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

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

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

最常用的限定符是 PropertyContext。 因此,WMI 将 DynProps 限定符作为快捷方式提供。 WMI 将使用 DynProps 标记的实例中的每个属性都视为具有 DynamicProviderPropertyContext 限定符。