Describir una ruta de acceso de objeto de instancia

Una ruta de acceso de objeto de instancia describe la ubicación de una instancia de una clase determinada dentro de un espacio de nombres específico.

Puede tener varios tipos diferentes de rutas de acceso de objeto de instancia:

  • Completo

    Una ruta de acceso de objeto de instancia completa anexa el nombre y el valor de la propiedad de clave de la clase a una ruta de acceso de objeto de clase completa.

    En el ejemplo siguiente se muestra la definición de la ruta de acceso del objeto de instancia completa.

    \\Server\Namespace:Class.KeyName="KeyValue"
    
  • Relativo

    Una ruta de acceso de objeto relativa hace referencia a una instancia ubicada en el espacio de nombres actual del servidor actual. La ruta de acceso relativa consta del nombre de clase seguido de los nombres y valores de las propiedades clave de esta instancia.

    En el ejemplo siguiente se muestra la definición de la ruta de acceso del objeto de instancia relativa.

    MyClass.MyProp="e:"
    
  • Relativo con una sola clave

    En el caso de las clases con una sola propiedad designada como clave, puede omitir el nombre de la propiedad de clave.

    En el ejemplo siguiente se muestra la definición de la ruta de acceso del objeto de instancia relativa con una sola clave.

    MyClass="e:"
    
  • Relativo con varias claves

    Use una coma para distinguir entre las claves de una instancia con varias claves.

    En el ejemplo siguiente se muestra la definición de la ruta de acceso del objeto de instancia relativa con varias claves.

    MyOtherClass.FirstKey=1,SecondKey=2
    
  • Relativo para una clase singleton

    La ruta de acceso de objeto relativa para una clase singleton consta del nombre de clase seguido de la notación "=@".

    En el ejemplo siguiente se muestra la definición de la ruta de acceso del objeto de instancia relativa para una clase singleton.

    MySingletonClass=@
    

En el procedimiento siguiente describe cómo recuperar una instancia de clase.

Para recuperar una instancia de clase

  1. Inicialice una cadena que contiene la ruta de acceso del objeto con una llamada a la función SysAllocString.

  2. Inicializar un objeto que recibirá la instancia.

  3. Recupere el objeto con una llamada a IWbemServices::GetObject o IWbemServices::GetObjectAsync.

    Para usar GetObjectAsync, debe implementar la interfaz IWbemSink.

La siguiente instrucción #include es necesaria para que el código que aparece más adelante en este tema se compile correctamente.

#include <wbemidl.h>

En el ejemplo de código siguiente se describe cómo recuperar una instancia de clase mediante una ruta de acceso de objeto.

IWbemServices* pWbemSvcs = 0;

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

En el caso de las instancias de clases que especifican varias propiedades como clave, WMI no requiere ninguna ordenación específica de las propiedades de clave en las rutas de acceso de objeto. Solo necesita especificar el valor de cada una de las propiedades de la ruta de acceso del objeto.

En el ejemplo de código siguiente se describen dos descripciones de clave equivalentes.

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