IWbemContext 接口 (wbemcli.h)

在向 WMI 提交 IWbemServices 调用时,可以选择使用 IWbemContext 接口向提供程序传达其他上下文信息。 IWbemServices 中的所有主调用都采用指向此类型的对象的可选参数。

继承

IWbemContext 接口继承自 IUnknown 接口。 IWbemContext 还具有以下类型的成员:

方法

IWbemContext 接口包含以下方法。

 
IWbemContext::BeginEnumeration

IWbemContext::BeginEnumeration 方法重置对象中所有上下文值的枚举。
IWbemContext::Clone

IWbemContext::Clone 方法创建当前 IWbemContext 对象的逻辑副本。 当必须进行许多具有大致相同的 IWbemContext 对象的调用时,此方法非常有用。
IWbemContext::D eleteAll

IWbemContext::D eleteAll 方法从当前对象中删除所有命名的上下文值,从而清空对象。
IWbemContext::D eleteValue

IWbemContext::D eleteValue 方法删除由 IWbemContext::SetValue 创建的命名上下文值。
IWbemContext::EndEnumeration

IWbemContext::EndEnumeration 方法结束以 IWbemContext::BeginEnumeration 开头的枚举序列。 此调用不是必需的,但它会尽早释放与 枚举关联的任何系统资源。
IWbemContext::GetNames

IWbemContext::GetNames 方法返回命名上下文值的所有名称的 SAFEARRAY 结构。
IWbemContext::GetValue

IWbemContext::GetValue 方法用于按名称检索特定的命名上下文值。
IWbemContext::Next

IWbemContext::Next 方法检索以 IWbemContext::BeginEnumeration 开头的所有上下文值的枚举中的下一个值。
IWbemContext::SetValue

IWbemContext::SetValue 方法创建或覆盖命名的上下文值。

注解

通常,动态提供程序需要比 IWbemServices 方法的正常参数中指定的信息更多。 例如,若要操作它提供的任何 WMI 架构对象,提供程序可能需要知道简单网络管理协议 (SNMP) 社区名称,或者结构化查询语言 (SQL) 数据库和表名称。 客户端可以将此信息添加到 IWbemContext 对象,并将 IWbemContext 对象与调用一起作为参数之一发送。

提供程序应谨慎使用内容对象。 建议从不需要它。 如果提供程序需要大量高度特定的上下文信息来响应请求,则必须对所有客户端进行编码以提供此信息,从而破坏作为 WMI 基础的统一访问模型。 然而,在某些情况下,这是无法避免的。 因此,提供此机制是为了使访问此类提供程序成为可能。 此类提供程序的开发人员应提供足够的文档,以便客户端软件的开发人员能够成功操作此类 CIM 对象。

支持使用 IWbemContext 允许客户端在请求中指定更多信息的提供程序应将它们支持的值的类型限制为以下列表中的类型:

  • VT_I4
  • VT_R8
  • VT_BOOL
  • VT_BSTR
  • VT_UNKNOWN
  • 上述任一项与 VT_ARRAY
注意只有支持 IWbemClassObject 的对象才能使用 VT_UNKNOWN 类型的变体在 IWbemContext 实例中封送其 IUnknown 方法。
 
使用 CoCreateInstanceEx 创建的 IWbemContext 对象是命名值的简单容器。 访问这些方法以填充动态提供程序所需的上下文信息。 调用其中一个 IWbemServices 方法后, IWbemContext 对象可以重新用于另一个调用,也可以使用 Release 和为对 IWbemServices 方法的其他调用创建另一个对象来解除分配该对象。

IWbemContext 对象中包含的信息完全由基础提供程序确定。 WMI 不使用信息,而是将其转发给提供程序。 提供程序必须发布这些服务请求所需的上下文信息。

客户端应用程序调用 CoCreateInstanceEx 来创建单个上下文对象。 然后,它调用 SetValue 一次或多次,以设置提供程序的上下文值。 最后,它将对象提交到其中一个 IWbemServices 方法,该方法在调用返回后立即对上下文对象调用 Release 。 其他方法主要供接收上下文对象且必须提取信息的提供程序使用。

要求

要求
最低受支持的客户端 Windows Vista
最低受支持的服务器 Windows Server 2008
目标平台 Windows
标头 wbemcli.h (包括 Wbemidl.h)

另请参阅

适用于 WMI 的 COM API

使用 C++ 创建和声明实例

调用 WMI

在 64 位平台上请求 WMI 数据

检索 WMI 实例的一部分