描述实例对象路径

实例对象路径描述了给定类的实例在特定命名空间中的位置。

你可以有几种不同类型的实例对象路径:

  • 完整

    完整的实例对象路径会将类的键属性的名称和值追加到完整的类对象路径。

    以下示例演示完整实例对象路径的定义。

    \\Server\Namespace:Class.KeyName="KeyValue"
    
  • 相对

    相对对象路径是指位于当前服务器上的当前命名空间中的实例。 相对路径包括类名,后跟此实例的键属性的名称和值。

    以下示例演示相对实例对象路径的定义。

    MyClass.MyProp="e:"
    
  • 具有单个键的相对路径

    对于只有一个属性指定为键的类,可以省略键属性的名称。

    以下示例演示具有单个键的相对实例对象路径的定义。

    MyClass="e:"
    
  • 具有多个键的相对路径

    使用逗号区分具有多个键的实例的键。

    以下示例演示具有多个键的相对实例对象路径的定义。

    MyOtherClass.FirstKey=1,SecondKey=2
    
  • 单一实例类的相对路径

    单一实例类的相对对象路径由类名后跟“=@”表示法组成。

    以下示例演示单一实例类的相对实例对象路径的定义。

    MySingletonClass=@
    

以下过程介绍如何检索类实例。

检索类实例

  1. 通过调用 SysAllocString 函数来初始化一个包含对象路径的字符串。

  2. 初始化一个将接收实例的对象。

  3. 通过调用 IWbemServices::GetObjectIWbemServices::GetObjectAsync 来检索对象。

    若要使用 GetObjectAsync,必须实现 IWbemSink 接口。

若要使本主题后面列出的代码正确编译,需要以下 #include 语句。

#include <wbemidl.h>

以下代码示例描述了如何使用对象路径检索类实例。

IWbemServices* pWbemSvcs = 0;

BSTR Path = SysAllocString(L"ComPort=2");    
IWbemClassObject *pComPort = 0;
pWbemSvcs->GetObject(Path, 0, 0, &pComPort, 0);

对于将多个属性指定为键的类的实例,WMI 不需要对对象路径中的键属性进行特定的排序。 你只需指定对象路径中的每个属性的值。

以下代码示例描述了两个等效的键说明。

MyClass.IntVal=33,StrVal="AAA"
MyClass.StrVal="AAA",IntVal=33