Descrizione di un percorso dell'oggetto istanza
Un percorso dell'oggetto istanza descrive il percorso di un'istanza di una determinata classe all'interno di uno spazio dei nomi specifico.
È possibile disporre di diversi tipi di percorsi di oggetti di istanza:
Full
Un percorso dell'oggetto istanza completo aggiunge il nome e il valore della proprietà chiave per la classe a un percorso oggetto classe completo.
Nell'esempio seguente viene illustrata la definizione del percorso dell'oggetto dell'istanza completa.
\\Server\Namespace:Class.KeyName="KeyValue"
Relativo
Un percorso oggetto relativo fa riferimento a un'istanza nello spazio dei nomi corrente nel server corrente. Il percorso relativo è costituito dal nome della classe seguito dai nomi e dai valori delle proprietà chiave di questa istanza.
Nell'esempio seguente viene illustrata la definizione del percorso dell'oggetto dell'istanza relativa.
MyClass.MyProp="e:"
Relativo con una singola chiave
Per le classi con una sola proprietà designata come chiave, è possibile omettere il nome della proprietà chiave.
Nell'esempio seguente viene illustrata la definizione del percorso dell'oggetto dell'istanza relativa con una singola chiave.
MyClass="e:"
Relativo con più chiavi
Usare una virgola per distinguere le chiavi di un'istanza con più chiavi.
Nell'esempio seguente vengono illustrate le definizioni del percorso dell'oggetto istanza relativa con più chiavi.
MyOtherClass.FirstKey=1,SecondKey=2
Relativo per una classe singleton
Il percorso dell'oggetto relativo per una classe singleton è costituito dal nome della classe seguito dalla notazione "=@".
Nell'esempio seguente viene illustrata la definizione del percorso dell'oggetto dell'istanza relativa per una classe singleton.
MySingletonClass=@
La procedura seguente descrive come recuperare un'istanza di classe.
Per recuperare un'istanza di classe
Inizializzare una stringa contenente il percorso dell'oggetto con una chiamata alla funzione SysAllocString .
Inizializzare un oggetto che riceverà l'istanza.
Recuperare l'oggetto con una chiamata a IWbemServices::GetObject o IWbemServices::GetObjectAsync.
Per usare GetObjectAsync, è necessario implementare l'interfaccia IWbemSink .
L'istruzione #include seguente è necessaria per il codice elencato più avanti in questo argomento per la compilazione corretta.
#include <wbemidl.h>
Nell'esempio di codice seguente viene descritto come recuperare un'istanza di classe usando un percorso oggetto.
IWbemServices* pWbemSvcs = 0;
BSTR Path = SysAllocString(L"ComPort=2");
IWbemClassObject *pComPort = 0;
pWbemSvcs->GetObject(Path, 0, 0, &pComPort, 0);
Per le istanze di classi che specificano più proprietà come chiave, WMI non richiede alcun ordinamento specifico delle proprietà chiave nei percorsi degli oggetti. È necessario specificare solo il valore di ognuna delle proprietà nel percorso dell'oggetto.
Nell'esempio di codice seguente vengono descritte due descrizioni di chiave equivalenti.
MyClass.IntVal=33,StrVal="AAA"
MyClass.StrVal="AAA",IntVal=33