Descrizione di un percorso dell'istanza oggetto
Un percorso dell'oggetto istanza descrive la posizione di un'istanza di una determinata classe all'interno di uno spazio dei nomi specifico.
È possibile avere diversi tipi di percorsi di oggetti dell'istanza:
Pieno
Un percorso completo dell'oggetto istanza aggiunge il nome e il valore della proprietà chiave della classe a un percorso completo dell'oggetto di classe.
Nell'esempio seguente viene illustrata la definizione del percorso completo dell'oggetto dell'istanza.
\\Server\Namespace:Class.KeyName="KeyValue"
Relativo
Un percorso oggetto relativo fa riferimento a un'istanza che si trova 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à della chiave.
Nell'esempio seguente viene illustrata la definizione del percorso dell'oggetto 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 sono illustrate le definizioni del percorso relativo dell'oggetto di istanza con più chiavi.
MyOtherClass.FirstKey=1,SecondKey=2
Relativo a 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'istanza di oggetto 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'interfacciaIWbemSink.
Per la corretta compilazione del codice elencato più avanti in questo argomento, è necessaria l'istruzione #include seguente.
#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 un 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