Metodo SWbemServicesEx.Put

Il metodo Put dell'oggetto SWbemServicesEx salva l'oggetto nello spazio dei nomi associato all'oggetto e restituisce un oggetto SWbemObjectPath che contiene il percorso dell'oggetto in cui sono stati scritti i dati.

Questo metodo viene chiamato in modalità semisynchronous. Per altre informazioni, vedere Chiamata di un metodo.

Per una spiegazione di questa sintassi, vedere Document Conventions per l'API di scripting.

Sintassi

objObjectPath = .Put( _
  ByVal objWbemObject, _
  [ ByVal iFlags ], _
  [ ByVal objWbemNamedValueSet ] _
)

Parametri

objWbemObject

Obbligatorio. Nuovo oggetto da inserire nello spazio dei nomi . Può trattarsi di un oggetto appena creato o di un oggetto modificato.

iFlags [facoltativo]

Questo parametro determina se la chiamata crea o aggiorna l'oggetto e se la chiamata restituisce immediatamente. Questo parametro può accettare i valori seguenti.

wbemChangeFlagUpdateCompatible (0 (0x0))

Consente l'aggiornamento di una classe se non sono presenti classi derivate e non sono presenti istanze per tale classe. Consente anche gli aggiornamenti in tutti i casi se la modifica è solo per qualificatori non importanti (ad esempio, qualificatore Descrizione ). Questo è il comportamento predefinito per questa chiamata e viene usato per la compatibilità con le versioni precedenti di WMI. Se la classe contiene istanze, l'aggiornamento ha esito negativo.

wbemChangeFlagUpdateSafeMode (32 (0x20))

Consente gli aggiornamenti delle classi anche se sono presenti classi figlio, quando la modifica non causa conflitti con le classi figlio. È possibile usare questo flag quando si aggiunge una nuova proprietà a una classe base non menzionata in precedenza in nessuna delle classi figlio. Se la classe contiene istanze, l'aggiornamento ha esito negativo.

wbemChangeFlagUpdateForceMode (64 (0x40))

Questo flag forza gli aggiornamenti delle classi quando esistono classi figlio in conflitto. Ad esempio, questo flag forza un aggiornamento se un qualificatore di classe è stato definito in una classe figlio e la classe base tenta di aggiungere lo stesso qualificatore in conflitto con quello esistente. Nella modalità di forza questo conflitto viene risolto eliminando il qualificatore in conflitto nella classe figlio. Se la classe contiene istanze, l'aggiornamento ha esito negativo.

L'uso della modalità forza per aggiornare una classe statica causa l'eliminazione di tutte le istanze di tale classe. Un aggiornamento forzato in una classe provider non elimina le istanze della classe .

wbemChangeFlagCreateOrUpdate (0 (0x0))

Fa sì che la classe o l'istanza venga creata se non esiste o sovrascritta se esiste già.

wbemChangeFlagCreateOnly (2 (0x2))

Utilizzato solo per la creazione. La chiamata ha esito negativo se la classe o l'istanza esiste già.

wbemChangeFlagUpdateOnly (1 (0x1))

Fa sì che questa chiamata ese solo un aggiornamento. La classe o l'istanza deve esistere affinché la chiamata venga eseguita correttamente.

wbemFlagReturnImmediately (16 (0x10))

Fa sì che la chiamata venga restituita immediatamente.

wbemFlagReturnWhenComplete (0 (0x0))

Determina il blocco di questa chiamata fino al completamento dell'operazione. Questo flag chiama il metodo in modalità sincrona.

wbemFlagUseAmendedQualifiers (131072 (0x20000))

Fa in modo che WMI scriva i dati di modifica della classe e la definizione della classe di base. Per altre informazioni, vedere Localizzazione delle informazioni sulla classe WMI.

objWbemNamedValueSet [facoltativo]

In genere, questo non è definito. In caso contrario, si tratta di un oggetto SWbemNamedValueSet i cui elementi rappresentano le informazioni di contesto che possono essere utilizzate dal provider che esegue la richiesta. Un provider che supporta o richiede tali informazioni deve documentare i nomi dei valori riconosciuti, il tipo di dati del valore, i valori consentiti e la semantica.

Valore restituito

Se la chiamata ha esito positivo, viene restituito un oggetto SWbemObjectPath . Questo oggetto contiene il percorso dell'oggetto dell'istanza o della classe di cui è stato eseguito il commit in WMI.

Codici di errore

Dopo il completamento del metodo Put , l'oggetto Err può contenere uno dei codici di errore nell'elenco seguente.

wbemErrAccessDenied - 2147749891 (0x80041003)

L'utente corrente non dispone dell'autorizzazione per l'operazione.

wbemErrAlreadyExists - 2147749913 (0x80041019)

È stato specificato il flag wbemChangeFlagCreateOnly , ma l'istanza esiste già.

wbemErrFailed - 2147749889 (0x80041001)

Errore non specificato.

wbemErrIllegalNull - 2147749898 (0x8004100A)

È stato specificato un valore NULL per una proprietà che non può essere NULL. Un esempio di tale proprietà è rappresentato da un qualificatore Key, Indexed o Not_Null .

wbemErrInvalidObject - 2147749908 (0x80041014)

L'oggetto specificato non è valido.

wbemErrInvalidParameter - 2147749896 (0x80041008)

Un parametro specificato non è valido.

wbemErrNotFound - 2147749890 (0x80041002)

È stato specificato il flag wbemChangeFlagUpdateOnly , ma l'istanza o la classe non esiste.

wbemErrIncompleteClass - 2147749920 (0x80041020)

Le proprietà obbligatorie per le classi non sono state impostate tutte.

wbemErrOutOfMemory - 2147749894 (0x80041006)

Memoria insufficiente per completare l'operazione.

Requisiti

Requisito Valore
Client minimo supportato
Windows Vista
Server minimo supportato
Windows Server 2008
Intestazione
Wbemdisp.h
Libreria dei tipi
Wbemdisp.tlb
DLL
Wbemdisp.dll
CLSID
CLSID_ISWbemServicesEx
IID
IID_ISWbemServicesEx